我想添加一个简单的标识。 因此,我认为最好的办法是在数据库中添加全权证书,然后问,如果用户名和密码是你留下的。 这种做法是行之有效的,它质疑b,你被拖到家里,转往家里。 然后,我试图通过尿回家,并且注意到,我可以这样做,没有标识。 因此,我估计,我应当使用。
[Authorize]
由于我不想让未经许可的用户查阅,因此,应当重新引导到日志上。 这并不可行。 当我授权控制员使用时,我的申请有误。
Object reference not set to an instance of an object.
网上。 想:
<authentication mode="Forms">
<forms loginUrl="~/Login/Index" timeout="2880" /> <-- I have changed the login url to my login controller.
</authentication>
我的原木控制者就是这样。
public ActionResult Index(UserModel model) <-- I query the db in the model.
{
if (!ModelState.IsValid)
{
return View(model);
}
if(!model.IsAdmin(model.UserName, model.Password))
{
ModelState.AddModelError("username", "you are not a admin");
return View(model);
}
FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToAction("Index", "Home");
}
So how is the proper way to use this Authorize attribute? Can I even use it the way I m using it? Am I missing something in the web.config? Regard!
这方面的一些最新情况。 由于我没有工作,我增加了这个网络。
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="5">
</forms>
</authentication>
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="MyNamespace.MyMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
userIsOnlineTimeWindow="2"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
拥有硬编码全权证书的成员:
public class MyMembershipProvider : MembershipProvider
{
public override bool ValidateUser(string username, string password)
{
if (username.Equals("user", StringComparison.CurrentCultureIgnoreCase) && password.Equals("myPassword"))
return true;
else
return false;
}
接着,我试图将我的家事主计长与授权权等同起来:
[Authorize()]
public class HomeController : Controller
{}
但这一错误仍然存在。 我指的是我可以 log,但当我到达“Home”时,我会发现与以前相同的错误。 地球名称是什么? 这对这一点有什么影响?
Regard!