所以,我正在我的应用程序中实现身份验证。 存储在xml文件中的信用卡(不是真实的项目)。
这是代码:
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return RedirectToAction("Index", "Objects", new ObjectsModel(//user name));
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
public class CustomMembershipProvider : SimpleMembershipProvider
{
public override bool ValidateUser(string username, string password)
{
return true;
}
}
[Authorize]
public class ObjectsController : Controller
{
public ActionResult Index()
{
return View(new ObjectsModel(//get authentificated username));
}
}
两个问题:
答案 0 :(得分:2)
我做得对吗?或者我必须使用WebSecurity等。这对于安全的应用程序是否足够?或者我对全体员工有很大的误解?
自定义身份验证需要做很多工作,作为包含 UserContext , UserProfiles , IPrincipal 的成员身份基础结构的一部分。如果您只想根据文件而不是model / dbcontext验证用户,那么可以通过标准的 WebSecurity 实现轻松完成。
Visual Studio附带了asp.net mvc模板项目成员资格实现就绪代码。它将让您深入了解模型,背景。
您可以查看this article了解详情。
如何在ObjectsController(注释行)的UserName中获取内容?
答案 1 :(得分:0)
Visual Studio附带Asp.Net MVC Template project membership
实现就绪代码。(是@PalakBhansali答案是正确的。)
您可以通过在Visual Studio中创建新项目来获取示例应用程序。您可以根据需要修改代码。
File-> New -> Visual C# -> Web -> ASP.NET MVC 4/3/2 Application
。
注意:不是空的Web应用程序
@User.Identity.Name
登录用户名。祝你好运;)