HTML : 코드 숨김액세스 로그인 제어
<body>
<form id="form1" runat="server">
<div>
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Login ID="Login1" runat="server" OnLoginError="LoginError">
</asp:Login>
</AnonymousTemplate>
<LoggedInTemplate>
Username:
<asp:LoginName ID="LoginName1" runat="server" />
</LoggedInTemplate>
</asp:LoginView>
</div>
</form>
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Security;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoginError(object sender, EventArgs e)
{
Login Login1 = (Login)LoginView1.FindControl("Login1");
string userName= Login1.UserName;
MembershipUser user = Membership.GetUser(userName);
if (user == null)
{
Login1.FailureText = "Username Invalid";
}
else
{
if (!user.IsApproved)
{
Login1.FailureText = "User Not Yet Approved";
}
else if (user.IsLockedOut)
{
Login1.FailureText = "User Locked Out";
}
}
}
}
은 위의 내 코드를 보여줍니다. 이 오류를 실행하려고하면 다음과 같은 오류가 표시됩니다.
'로그인'에는 '사용자 이름'에 대한 정의가없고 '로그인'유형의 첫 번째 인수를 허용하는 확장 메서드가없는 '사용자 이름'이 없습니다 사용 지시문이나 어셈블리 참조가 누락 되었습니까?)
'로그인'에는 'FailureText'에 대한 정의가없고 '로그인'유형의 첫 번째 인수를 허용하는 확장 메서드 'FailureText'를 찾을 수 없습니다 using 지시문 또는 어셈블리 참조가 없습니다.)
참고 System.Web.UI.WebControls 참조를 포함 시켰습니다. 이런 일이 왜
System.Web.UI.WebControls.Login Login1 = (System.Web.UI.WebControls.Login)LoginView1.FindControl("Login1");
사람이 설명해주십시오 수 :
코드는 내가 명시 적으로 로그인 제어 캐스트 경우, 그러나, 작업 시작? 첫 번째 경우 Login 키워드 위로 마우스를 가져 가면 "System.Web.UI.WebControls.Login"클래스가 표시되므로 잘못 참조되지 않습니다.
미리 감사드립니다. :)
'Login '이라는 다른'Page' 또는'UserControl'이 있습니까? –
나는 Login이라고하는 또 다른 페이지를 가지고 있었고 이것을 삭제하면 작업이 시작되었습니다. 그러나 나는 아직도 왜 오류를 이해하지 못합니까? – Fahad
네임 스페이스 접두사가없는'Login'은'System.Web.UI.WebControls.Login' 컨트롤이 아니라'Login' 페이지로 해석되기 때문에. Visual Studio의 툴팁은 오래된 인텔리 센스 캐시를 사용하고있었습니다. –