5

(私は純粋な SS プロジェクトについて話しているので、MVC Razor と混同しないでください)

認証を使用して SS Razor ビューへのアクセスを制限するにはどうすればよいですか?

つまり、SS Razor からユーザー セッションと認証コードを呼び出すにはどうすればよいでしょうか。

私はこのようなことをしたい:

@inherits ViewPage
@Authenticate(RedirectUrl = "/Login")

<div>Hello @UserSession.UserName</div>
<div>You are in the secured area now</div>
4

1 に答える 1

3

SS Razor ページから直接これを行う方法を知りません。しかし、同じジレンマに陥ったとき、代わりにページを提供するサービスを作成することで解決しました。そうすれば、ページのサービスを属性で装飾できAuthorize、ユーザーが認証されていない場合はログイン ページにリダイレクトされます。

[Authorize]
public class MyPageService : IService<MyRequestDTO>
{
    public object Execute(MyRequestDTO request)
    {
        ...
        return new MyPageViewModel();
    }
}

かみそりページで現在のセッションを取得するには、GetSession<T>.

@{
    var currentSession = GetSession<CustomUserSession>();
}

<div>Hello @currentSession.UserName</div>

これのもう 1 つの利点は、厳密に型指定されたビューを取得し、サービスからビューのデータを提供できることです。

@inherits ViewPage<MyPageViewModel>
于 2012-10-21T15:33:10.110 に答える