从用户名中删除域名的位置? ASP.NET MVC 4

时间:2012-11-02 16:23:17

标签: asp.net-mvc-4 asp.net-authentication

这是一个用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
                ...            

1 个答案:

答案 0 :(得分:0)

如果您只想要用户名而不是域名,为什么不尽早验证,例如不要用户名。与往常一样,服务器验证可以像您建议的那样在登录操作中备份,例如

if(model.UserName.Contains('\')  
         model.UserName = model.Username.Name.Split('\')[1]; 

如果它始终是同一个域,请将域名放在文本框旁边,以便明确说明它没有被要求。