2

基本的な HTTP 認証をテストしています。ページに移動しようとしましたが、「books/get」に移動しても何も表示されません。なんで?何を追加すればよいですか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net.Http.Headers;
using System.Security.Principal;
using System.Text;
using System.Threading;

namespace WebApiTest.Controllers
{
    public class BooksController : Controller
    {
        [Authorize]
        public String Get()
        {
            String res = "Hello";
            return res;
        }
        public ActionResult Index()
        {
            return View();
        }
    }
}
4

2 に答える 2

3

メソッドを で装飾したため、Authorize認証されていない限り、実際にそのアクションの結果にアクセスすることはできません。何も表示されない場合はloginUrl、web.config 内で次のように構成する必要があります。

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="http://yoursite.co.uk/login timeout="2880"/>
    </authentication>
    <authorization>
        <deny users="?" />
    </authorization>
于 2013-10-03T09:04:42.167 に答える
0

[Authorize]MVC フレームワークのデフォルトの実装です。@mattytommo が言及したフォーム認証を使用します

 public class AuthorizeAttribute : FilterAttribute, AuthorizationFilter

と使用

protected virtual bool AuthorizeCore(HttpContextBase httpContext)
{
}

承認をカスタマイズするために独自のものを作成する場合は、ASP.NET MVC 4 カスタム承認属性と権限コード (ロールなし) を確認できます。

導出についてはMSDNを参照してください

于 2013-10-03T09:42:45.300 に答える