0

カスタム認証の問題を解決する必要があります。データベースには、次の名前の4つのテーブルがあります。1。Usermaster 2.Roles 3.RoleMenu 4.Menu

私はこれを実装し、完全に機能しています。私の唯一の問題は、認証されたユーザーがブラウザにページのURLを入力するだけで、許可されていないページを表示できることです。

フォーム認証とフォルダレベルのアクセス以外に役立つアイデアはありますか?

4

1 に答える 1

0

これに似たプロジェクトがありましたが、かなり前のコードがどこにも見つからないようです。前提は覚えてるけど。私がしたことは、パイプで区切られた文字列でアクセスを許可されたユーザー名を持つ webconfig にキーを設定することでした。コードの背後で、そのキーとページにアクセスしようとしているユーザーを引き込みます。次に、文字列を検索し、ユーザーとの一致を試みます。一致が見つかった場合はページが読み込まれ、一致が見つからなかった場合は、アクセス権がないことと、アクセスを要求するために誰に連絡するかを伝えるページにリダイレクトされます. コードを探して、見つけたら編集します。

編集

WebConfig

<appSettings>
    <add key="Users" value="user1|user2|user3|..." />
</appSettings>

この作品は、

.aspx.vb ページの場合

Dim DomainUserName() As String = Request.ServerVariables("LOGON_USER").Split("\")
    Dim UserName As String = DomainUserName(1)

    Dim Users() As String = ConfigurationManager.AppSettings("Users").ToString.Split("|")

    Dim isAllowedAccess As Boolean = False

    For i As Integer = 0 To Users.Count - 1
        If UserName = Users(i) Then
            isAllowedAccess = True
            Exit For
        End If
    Next

    If isAllowedAccess = False Then
        Response.Redirect("Default.aspx")
    End If

基本的に、ログインはドメイン\ユーザー名であるため、分割を使用して名前だけを抽出しています。次に、承認されたユーザーをパイプで分割する配列に入力し、それらをループして一致を探します。一致が見つかった場合はアクセスを許可し、一致が見つからない場合はホームページにリダイレクトされます。

于 2012-05-18T18:48:03.517 に答える