2011-08-31 5 views
2

Im에 new.이 문제는 찾았지만 행운은 없습니다. 사용자 ID와 비밀번호로 로그인 페이지를 만들었습니다. 내 webconfig에서 다음 코드를 입력하여 인증되지 않은 사용자를 거부합니다. 사용자가 올바른 정보를 입력 할 때, 나는 쿠키에 사용자에 대한 정보 작은 정보를 저장하고 싶습니다 예를 경우가 관리자, 관리자, 사용자 등 말할 것입니다 무엇을 달성하려고 메신저vb.net의 로그인 페이지와의 도움말

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" timeout="10" protection="All" /> 
</authentication> 

<authorization> 
    <deny users="?"></deny>  
</authorization> 

... 다음은 사용자가 제출 버튼을 클릭 할 때 발생하는 코드입니다. 문제는 사용자가 올바른 정보를 입력 한 후 페이지가 페이지로 리디렉션되지 않는다는 것입니다. 어떤 도움이라도 대단히 감사 할 것입니다.

If txtPassword.Text.ToLower = "test" Then 

     'Create a cookie 
     Dim cookie As New HttpCookie("UserInfo") 

     'Cookie variables 
     cookie("User") = txtUser.Text 
     cookie("UserGroup") = "Admin" 

     'Add Cookies to current web responses 
     Response.Cookies.Add(cookie) 

     Response.Redirect("login_successful.aspx") 
     'FormsAuthentication.RedirectToLoginPage("login_successful.aspx") 
    Else 
     lblResult.Text = "Incorrect Password" 
    End If 
+2

: 그들은 "관심있는"당사자가 손으로 편집 할 수있는 텍스트 파일 일뿐입니다. –

+0

@Joel, 동의합니다. 윌, 세션에 역할 정보를 저장하는 방법은? – DOK

+1

[역할 공급자] (http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx)와 함께 [ASP.NET Membership Provider] (http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx)를 사용하십시오. -us/library/9ab2fxh0.aspx) 그리고 평온한 패키지가 있습니다. –

답변

3

역할 정보를 저장하기 위해 쿠키를 사용하지 않는 것이 좋습니다. 이 태스크를 수행하려면 빌트인 제공자 중 하나를 사용하십시오. 예를 들어, 이것을 시도하십시오.

Visual Studio 또는 Visual Studio Express를 열고 "ASP.NET 웹 응용 프로그램"을 새로 만듭니다. 내장 된 공급자를 사용하는 방법의 예와 함께 "계정"디렉토리가 포함되어 있음을 알게 될 것입니다. 내장 된 공급자를 사용하려면 올바른 테이블, 역할, sprocs 등으로 데이터베이스를 설정해야하지만 쉽습니다.

C : 당신이 .NET 4.0이 aspnet_regsql.exe라는 업체에 내장 된 사용하는 데이터베이스를 설정하는 프로그램을 설치하고이 일반적으로 여기에 위치하고있는 경우 \ WINDOWS \ Microsoft.NET 프레임 워크 \ v4를 \.

aspnet_regsql.exe 0.30319 \ 그런 다음 사용자를 리디렉션 로그인 컨트롤을 사용하고 Login.DestinationPageUrl 속성을 사용할 수 있습니다 로그인 문제를 해결하는 어느 페이지가에 로그인 한 후 원하는합니다.

을하더라도 내장 된 공급자를 사용하지 않으면 구현 방법에 대한 훨씬 더 좋은 아이디어를 얻을 수 있습니다. 역할을 귀하의 웹 페이지에 추가하십시오.

1

난 당신이 FormsAuthentication.SetAuthCookie 메서드를 호출하여 첫 ​​번째 인증 쿠키를 설정해야 리디렉션하기 전에 같아요. 그리고 정보를 저장하는 것에 관한 joel coehoorn의 쿠키에 관한 코멘트를 고려해보십시오.

1

쿠키를 사용하여 해킹 할 수있는 정보를 저장하는 대신 ASPNetRoles 테이블에 역할을 저장하고 사용자를 만들 때 사용자에게 역할을 연결해야합니다. 다음 코드를 사용하여 역할을 확인할 수 있습니다.

If (Roles.IsUserInRole("rolename")) Then 
    'Do something useful 
End If 

리디렉션의 경우 어떤 이벤트 처리기가 포함되어 있습니까?

+0

이벤트 핸들러는 클릭 버튼입니다. – Will

1

이 두 가지를 시도해 볼 수 있습니까? 쿠키 이름에 refrence을 필요로 할 수있다 webconfig가

<forms name="UserInfo" ... 

2 Webconfig는 말했다되고 필요 수) 있도록

1)

<authorzation> 
    <allow user="Admin" /> 
    <deny... 
역할 정보를 쿠키에 의존하지 마십시오