这是一个用MVC 4编写的内部网应用程序,需要用户登录。从用户输入的用户名中删除域名的最佳位置在哪里? (Username.Name.Split('\')[1];
)。这是用户进入域名。
查看:
@Html.ValidationSummary(true, "Login failed.")
@using (Html.BeginForm())
{
<div style="width: 400px">
<fieldset>
<legend>Account Information</legend>
<div class="editor-label">
@Html.LabelFor(m => m.Username)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Username)
@Html.ValidationMessageFor(m => m.Username)
</div>
...
登录模式:
[Required]
[Display(Name = "Username")]
public string Username { get; set; }
....
控制器:
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.Username, model.Password))
{
//set authentication cookie
...
答案 0 :(得分:0)
如果您只想要用户名而不是域名,为什么不尽早验证,例如不要用户名。与往常一样,服务器验证可以像您建议的那样在登录操作中备份,例如
if(model.UserName.Contains('\')
model.UserName = model.Username.Name.Split('\')[1];
如果它始终是同一个域,请将域名放在文本框旁边,以便明确说明它没有被要求。