के साथ प्रोजेक्ट बनाया गया है तो मुझे पहचान के साथ कोई समस्या है और मैं इससे बहुत परिचित नहीं हूं। बहुत समय पहले मैंने एक नई परियोजना शुरू की थी जिसका मूल रूप से इसका कोई प्रमाणीकरण नहीं था। हालांकि, जैसे ही परियोजना बढ़ी, हमने पाया कि हमें इसे लागू करना चाहिए। चूंकि इसे मूल रूप से स्थापित नहीं किया गया था इसलिए मैंने लॉगिन के लिए एक फॉर्म बनाया था। लेकिन यह काम नहीं कर रहाएएसपी.NET पहचान एकीकरण जब कोई प्रमाणीकरण
How to implement custom authentication in ASP.NET MVC 5
और मैं पता नहीं क्यों:
मैं इस सवाल का जवाब मिल गया है और इसे लागू किया।
यहां देखने को कुछ यह सिर्फ एक सादे रूप है बहुत:
यहाँ मेरी कोड है।
@{
ViewBag.Title = "Login";
}
<div class="container">
<h2>Login</h2>
<br />
@using (Html.BeginForm("Login", "Main"))
{
<div class="row">
<div class="form-group col-xs-6">
@Html.Label("Username", htmlAttributes: new { @class = "control-label col-sm-3" })
<div class="col-sm-8">
@Html.TextBox("username", null, new { @class = "form-control" })
@*Html.ValidationMessageFor(model => model.EnrollmentOption, "", new { @class = "text-danger" })*@
</div>
</div>
<div class="form-group col-xs-6">
</div>
</div>
<div class="row">
<div class="form-group col-xs-6">
@Html.Label("Password", htmlAttributes: new { @class = "control-label col-sm-3" })
<div class="col-sm-8">
@Html.Password("password", null, new { @class = "form-control" })
@*Html.ValidationMessageFor(model => model.EffectiveDate, "", new { @class = "text-danger" })*@
</div>
</div>
<div class="form-group col-xs-6">
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-offset-6 col-sm-5">
<input type="submit" id="login" value="Sign in" class="btn btn-primary" />
</div>
</div>
</div>
}
कार्रवाई इसके लिए लागू किया इस एक, कि ज़्यादा से ज़्यादा मायने रखती है:
[HttpPost]
public ActionResult Login(string username, string password)
{
if (isLoginValid(username, password))
{
var ident = new ClaimsIdentity(
new[] {
// adding following 2 claim just for supporting default antiforgery provider
new Claim(ClaimTypes.NameIdentifier, username),
new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity", "http://www.w3.org/2001/XMLSchema#string"),
new Claim(ClaimTypes.Name,username),
// No roles needed for now...
},
DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().Authentication.SignIn(
new AuthenticationProperties { IsPersistent = false }, ident);
return RedirectToAction("QuoteSearch"); // auth succeed
}
else
{
// invalid username or password
ModelState.AddModelError("", "Invalid username or password");
return View();
}
}
और वहाँ isLoginValid समारोह है (अब यह एक हार्डकोडेड लॉगिन का उपयोग करने के लिए सेट है के लिए)
[NonAction]
private bool isLoginValid(string user, string password)
{
return (user.ToLower() == "someUser" && password.ToLower() == "myPassword");
}
मुझे बहुत से दावों या पहचान के नीचे कैसे काम नहीं पता है। मैंने हालांकि सभी आवश्यक संदर्भ जोड़ने के बारे में सुनिश्चित किया था। लॉगिन रीडायरेक्ट के बाद मेरे कार्यों पर प्राधिकृत विशेषता का उपयोग करते समय मुझे आईआईएस से अनधिकृत अनुरोध मिलता है। क्या मेरे कोड में कुछ गड़बड़ है?
मुझे पहचान के प्राधिकरण भाग का उपयोग करने में सक्षम होने के लिए क्या बदलना चाहिए या ठीक करना चाहिए?
धन्यवाद,
स्थापित करने की आवश्यकता यह जानना चाहता है कि, कृपया कम से कम एक टिप्पणी छोड़ अच्छा होगा। –
अपनी स्टार्टअप सीएस फ़ाइल की जांच करें, आपके पास सेवाओं के लिए कॉल होना चाहिए। कॉन्फ़िगर सर्विसेज विधि में जोड़ें (...), और इसी तरह कॉन्फ़िगर विधि में ऐप के लिए कॉल होना चाहिए। उपयोग (i)। मेरा सुझाव नमूना ऐप को प्रमाणीकरण के साथ उत्पन्न करना और आपके पास जो कुछ है उसके साथ तुलना करना है। लेकिन ऐसा लगता है कि आपके पास इंजेक्शन वाली सेवाएं नहीं हैं। – guysherman
@guysherman एएसपी.Net कोर के लिए है, एमवीसी 5 के लिए नहीं, जो इस सवाल के बारे में है। – DavidG