0

この問題の解決策を数時間探していました。多くの人が同様の問題を抱えているようですが、解決策はどれも私にはうまくいきません。ログイン時に userIndex を取得するには、ユーザー名を取得する必要があります。

デフォルトのログイン ページを使用しています。

%@ Page Title="Log In" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Login.aspx.cs" Inherits="LunchTogether.Account.Login" %>
<h2>
        Log In
    </h2>
    <p>
        Please enter your username and password.
        <asp:HyperLink ID="RegisterHyperLink" runat="server" EnableViewState="false">Register</asp:HyperLink>
        if you don't have an account.
    </p>
    <asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false"         LoggedIn="OnLoggedIn" >

背後にあるコードは次のとおりです。

  void OnLoggedIn(object sender, EventArgs e)
        {
            bool Authenticated = false;
            Authenticated = SiteSpecificAuthenticationMethod(LoginUser.UserName, LoginUser.Password);
        }

ログインコントロールでリストされているすべてのイベントを試しましたが、イベントを発生させるものはありません。ここで見逃しているものはありますか?

4

1 に答える 1

0

これは、独自のバージョンのログイン コントロールを作成した後、「onLoggedIn」メソッドをオーバーライドする必要があるためだと思います。

この例を参照してください: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.login.onloggedin(v=vs.100).aspx

次のようないくつかの方法を使用できると思います。

protected void OnLoginIn(object sender, EventArgs e)

protected void OnLoginError(object sender, EventArgs e)

コントロールをオーバーライドせずに、しかし Context.Profile がそれらを通過するときに設定されているとは思わないので、ログインしているユーザーに関する情報が必要な場合は、コントロールをオーバーライドする必要があると思います。

于 2014-03-19T15:03:54.550 に答える