2012-11-02 2 views
1

이것은 사용자 로그인이 필요한 MVC 4로 작성된 인트라넷 응용 프로그램입니다. 사용자가 입력 한 사용자 이름에서 도메인을 제거하는 가장 좋은 장소는 어디입니까? (Username.Name.Split('\')[1];). 이것은 사용자가 도메인에 들어갈 때 발생합니다.사용자 이름에서 도메인을 제거 할 위치는 어디입니까? ASP.NET MVC 4

보기 :

@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

당신은 단지 USERNA를 원하는 경우 도메인이 아니라 내가 가능한 한 일찍 검증하는 것이 좋습니다. \ 사용자 이름에 \ 모두를 사용하지 마십시오. 항상 서버 유효성 검사를 통해 로그인 작업에서 제안 사항을 뒷받침 할 수 있습니다 (예 :

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

항상 동일한 도메인 인 경우

는이 요구되지 않는 것이 명확하게 텍스트 상자 옆에 도메인 이름을 넣어.

+0

가능한 한 빨리 검증하고 싶습니다. 보기에서 이것을 어떻게합니까? 로그인 작업에서이 검사를 수행해야합니까? 도메인 이름을 텍스트 상자 옆에 두는 것이 좋습니다. – user1620141

+0

DataAnnotations에서 클라이언트 유효성 검사를 수행 했습니까? – dove

+0

나는 클라이언트 유효성 검사가 없다. jquery를 사용해야합니까? 나는 전에 이것을 한 적이 없다. – user1620141