我正在关注以下文档: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/来构建自定义身份验证。我想知道以下代码片段中的SginingKey格式是什么:
app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions()
{
// Here
SigningKey = ConfigurationManager.AppSettings["authSigningKey"],
ValidAudiences = new[] { ConfigurationManager.AppSettings["authAudience"] },
ValidIssuers = new[] { ConfigurationManager.AppSettings["authIssuer"] },
TokenHandler = config.GetAppServiceTokenHandler()
});
和
JwtSecurityToken token = AppServiceLoginHandler.CreateToken(
new Claim[] { new
Claim(JwtRegisteredClaimNames.Sub, assertion["username"]) },
// And here
mySigningKey,
myAppURL,
myAppURL,
TimeSpan.FromHours(24));
是Base64String吗?普通字符串?我注意到在一些分散的例子中,有时将字节数组转换为Base64String。
什么是正确的字符串格式?如何生成测试值?
答案 0 :(得分:2)
签名密钥是十六进制编码的字符串。您可以将任何值用于测试目的 - 前提是用于生成JWT令牌的密钥与用于验证它们的密钥相同。
您可以通过打开浏览器https://your_app_name.scm.azurewebsites.net/Env.cshtml#envVariables并查找WEBSITE_AUTH_SIGNING_KEY值来检索Azure Web或移动应用程序中使用的值。
答案 1 :(得分:0)
用于签署密钥的任何内容。如果您要指定Base64字符串(这是正常的),那就是它。请注意,function selection() {
alert("got in");
var x;
var number_of_input = $("#formtable select").length;
alert(number_of_input);
for (var i = 1; i < number_of_input; i++) {
if (i > 1) { x = (i * 9) + 5; }
else { x = 14 };
alert(x);
var name = "vnew_or_resold" + x;
var sel = document.getElementById(name);
var opt = sel.options[sel.selectedIndex];
var dd = opt.text;
alert(dd);
var builder = "vbuilder_name" + (x + 1);
alert(builder);
var build = builder.val();
alert(build);
if (dd == "new") {
if (build == "") {
alert('Mandatory');
return false;
}
}
}
return true;
}
部分仅在本地运行服务时使用。在Azure App Service中运行时,它会自动处理。