मुझे लगता है कि टोकन जाने का एक ठोस तरीका होगा। प्रपत्र प्रमाणीकरण वेब के लिए कुकीज़ पर आधारित है। हालांकि सभी गैर ब्राउज़र ग्राहकों के लिए सबसे ज्यादा विचार स्थिति नहीं है।
मेरा सुझाव है कि मैं एक कस्टम प्रमाणीकरण FilterAttribute बना रहा हूं और ऑन-प्राधिकरण विधि को ओवरराइड कर रहा हूं। उस विधि में, आप एक टोकन के अस्तित्व की जांच कर सकते हैं जिसे आपने क्लाइंट को वैध प्रमाण-पत्र प्रदान करने के बाद जारी किया है। आप इस विशेषता का उपयोग किसी भी विधि या नियंत्रक पर कर सकते हैं जिसे आप मान्य करना चाहते हैं। यहां एक नमूना आप संदर्भ सकता
public class AuthorizeTokenAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext != null)
{
if (!AuthorizeRequest(actionContext.ControllerContext.Request))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized) { RequestMessage = actionContext.ControllerContext.Request };
}
return;
}
}
private bool AuthorizeRequest(System.Net.Http.HttpRequestMessage request)
{
bool authorized = false;
if (request.Headers.Contains(Constants.TOKEN_HEADER))
{
var tokenValue = request.Headers.GetValues("TOKEN_HEADER");
if (tokenValue.Count() == 1) {
var value = tokenValue.FirstOrDefault();
//Token validation logic here
//set authorized variable accordingly
}
}
return authorized;
} }
TOKEN_HEADER सिर्फ एक स्ट्रिंग एक HTTP शीर्ष लेख है कि ग्राहक प्रमाणीकृत अनुरोधों के लिए वापस पास करना चाहिए का प्रतिनिधित्व है।
तो चलो, यह
- क्लाइंट अनुरोध सुरक्षित डेटा
- ग्राहक अधिकृत नहीं है के माध्यम से चलना एक अनधिकृत स्थिति कोड
- ग्राहक साख भेजता प्रमाणित करने के लिए है, जो HTTPS के द्वारा सुरक्षित किया जाना चाहिए के साथ एक प्रतिक्रिया वापस जाने
- एक बार सत्यापित होने पर, ग्राहक को HTTP शीर्षलेख के माध्यम से टोकन प्राप्त होता है, या जो भी आपके लिए काम करता है
- क्लाइंट फिर से सुरक्षित डेटा का अनुरोध करने का प्रयास करता है, इस बार संलग्न अनुरोध के लिए टोकन
- AuthorizeTokenAttribute टोकन को मान्य करेगा और कार्रवाई को निष्पादित करने की अनुमति देगा।
इसके अलावा, जॉन पीटर्सन द्वारा इस पोस्ट को चेक करें। Making your ASP.NET Web API’s secure
धन्यवाद, इससे बहुत मदद मिली, आप प्रमाणीकरण के दौरान टोकन उत्पन्न करने की सलाह कैसे देते हैं? एक guid उत्पन्न और डेटाबेस में उपयोगकर्ता के लिए इसे स्टोर? –
जो आपके ऊपर है, मुझे लगता है। आप एक ग्रिड या हैश या कुछ प्रकार के अद्वितीय मूल्य का उपयोग कर सकते हैं। इस पर निर्भर करता है कि आपके कोड के लिए वास्तव में – cecilphillip
आपकी कोड टिप्पणी में आप "अधिकृत वैरिएबल तदनुसार सेट करें" कहें .... अधिकृत चर सेट किया जाएगा? Request.Properties पर? कहीं और? – ChrisCa