我有一个脚本,当用户经过身份验证时可以正常工作:
[MobileAppController]
public class TestController : ApiController
{
// GET api/Test
[HttpGet, Route("api/Test/completeAll")]
public string Get()
{
MobileAppSettingsDictionary settings = this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings();
ITraceWriter traceWriter = this.Configuration.Services.GetTraceWriter();
string host = settings.HostName ?? "localhost";
string greeting = "Hello from " + host;
traceWriter.Info(greeting);
return greeting;
}
// POST api/values
[HttpPost, Route("api/Test/completeAll")]
public string Post(string hej)
{
string retVal = "Hello World!" + hej;
return retVal;
}
}
}
可以看出,我没有添加属性[Authorize]
,这是要求身份验证的新方式,see controller on this link 。在同一链接中指出,控制者现在是匿名的。
但是,如果我尝试在身份验证之前访问 Controller ,但在身份验证之后它工作正常,我会被拒绝访问。
谁能澄清一下吗?
更新
根据this link我不应该更改任何内容,因为已安装快速启动。它是但仍然不起作用:/
最佳答案
您是否将 Azure 应用服务身份验证/授权设置为要求对所有请求进行身份验证?
- 转到 Azure 门户中的应用服务
- 所有设置 -> 身份验证/授权(在“功能”下)
- 在“请求未经验证时采取的操作”下,设置为“允许请求(无操作)”
这将使应用程序控制授权而不是服务。
关于c# - Azure 应用服务未经授权的用户访问 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36402645/