2015-10-12 13 views
20

ओविन प्रमाणीकरण के लिए नया और अपने स्वयं के ओविन दावे प्रकार बनाने के लिए इसे कठिन बनाना।कस्टम दावा प्रकार जोड़ें

बात करता है। मुझे "GroupID" जैसे कस्टम दावों को जोड़ने की ज़रूरत है ताकि मैं इसे विभिन्न पृष्ठों पर आसानी से एक्सेस कर सकूं।

मैं अपने लॉग इन

public ActionResult Login(LoginViewModel model, string returnUrl) 
{ 
    UserViewModel userModel = new UserViewModel(); 
    if (!ModelState.IsValid) 
    { 
     return View(model); 
    } 

    if(CommonHelper.ValidateADUser(model.Username,model.Password)) 
    { 

     UserViewModel curUser = userModel.GetUserDetails(model.Username); 
     if (curUser != null) 
     { 
      var claims = new List<Claim>(); 
      claims.Add(new Claim(ClaimTypes.WindowsAccountName, curUser.Username)); 
      claims.Add(new Claim(ClaimTypes.Name,curUser.Fullname)); 
      claims.Add(new Claim(ClaimTypes.Role, "")); 
      claims.Add(new Claim("GroupID", curUser.UserGroupID.ToString())); 

      var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); 
      var ctx = Request.GetOwinContext(); 
      AuthenticationManager.SignIn(id); 
      return RedirectToAction("Index", "Home"); 
     } 
    } 
    else 
    { 
     ModelState.AddModelError("", "Invalid login attempt."); 
    } 

    return View(model); 
} 

में कुछ इस तरह किया अपना लॉगिन में आंशिक मैं इस

public ActionResult _LoginPartial() 
{ 
    var identity = (ClaimsIdentity)User.Identity; 
    TempData["curUserFullName"] = identity.FindFirst(ClaimTypes.Name).Value; 

    string s= identity.FindFirst("GroupID").Value; 
    return PartialView(); 
} 

करके मूल्य प्राप्त करने मैं उपयोगकर्ता नाम और कोई समस्या नहीं के साथ पूरा नाम प्राप्त कर सकते हैं की कोशिश की लेकिन समूह आईडी एक ऑब्जेक्ट शून्य त्रुटि का कारण बनता है।

किसी को उम्मीद है कि कोई मुझे सही उत्तर में घुमा सकता है।

+0

क्या आप देख सकते हैं कि नया दावा UserClaims DB तालिका में जोड़ा गया है या नहीं? – Jay

+0

उपयोगकर्ता दावा डीबी टेबल कहां है? – TheProvost

+0

आपके ऐप पर निर्भर करता है, आमतौर पर आपके एप्लिकेशन डीबी में एएसपीनेट यूज़र क्लाइम्स जैसे कुछ। – Jay

उत्तर

18

जैसा कि मैंने आपके कोड की जांच की है इसमें कोई समस्या नहीं है।

जांच करें कि कैश स्पष्ट था:

यहाँ है कि मैं क्या आप क्या करना चाहते है। अपने कैश साफ नहीं गया है तो आप यह स्पष्ट इस तरह कर सकते हैं: Ctrl + Shift + Delete

यह, क्योंकि आपके प्रवेश के दौरान, वह कुकी में बचत होगी और यह स्पष्ट नहीं था, और यह है कि नए होता है दावा कुकीज़ में सहेजा नहीं गया था।

या यह जांचने का प्रयास करें कि आपका उपयोगकर्ता समूह समूह एक मूल्य है।

+0

क्या !!!! रूकी गलती मैंने विभिन्न ब्राउज़रों का उपयोग किया है इसलिए मैंने सोचा कि कुकीज़ समस्या नहीं थी। धन्यवाद!!! – TheProvost

+2

इसकी वजह यह है कि otang monggos – Sherlock

+0

वह हॉटकी बेहद सहायक है! – mezmi

संबंधित मुद्दे