在SPA应用程序的早期版本中,AntiForgey令牌的想法如下:
__RequestVerificationToken
ValidateJsonAntiForgeryTokenAttribute
添加到请求asp-anti-forgerytaghelper
。我不太了解ASP.NET 5中的授权要求(是否有一些好的信息源?)但看起来新行为应该是这样的:
__RequestVerificationToken
class PeakClass
{
static int CurrentProcessID = 0000;
private static void Main(string[] args)
{
//Basically gets your default audio device and session attached to it
using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render))
{
using (var sessionEnumerator = sessionManager.GetSessionEnumerator())
{
//This will go through a list of all processes uses the device
//the code got two line above.
foreach (var session in sessionEnumerator)
{
//This block of code will get the peak value(value needed for VU Meter)
//For whatever process you need it for (I believe you can also check by name
//but I found that less reliable)
using (var session2 = session.QueryInterface<AudioSessionControl2>())
{
if(session2.ProcessID == CurrentProcessID)
{
using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>())
{
Console.WriteLine(audioMeterInformation.GetPeakValue());
}
}
}
//Uncomment this block of code if you need the peak values
//of all the processes
//
//using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>())
//{
// Console.WriteLine(audioMeterInformation.GetPeakValue());
//}
}
}
}
}
private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow)
{
using (var enumerator = new MMDeviceEnumerator())
{
using (var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia))
{
Console.WriteLine("DefaultDevice: " + device.FriendlyName);
var sessionManager = AudioSessionManager2.FromMMDevice(device);
return sessionManager;
}
}
}
}
添加到请求问题是:如何编写此新授权要求并删除标准要求?有人可以提供一些建议或指点我的一些例子吗? 感谢
答案 0 :(得分:1)
使用MVC6,如果你使用这样的东西:
<form asp-controller="Account"
asp-action="Login">
</form>
您将自动获得:
<form action="/Account/Login" method="post">
<input name="__RequestVerificationToken" type="hidden" value="....">
</form>
仅当您要停用该行为时,才会使用 asp-antiforgery
。
对于验证本身,当您在app.AddMvc(...)
和ConfigureServices
方法中执行Configure
时,会添加该验证。
事实上,有一些东西正在被添加,如果你很好奇,你可以check out the code!
如果你真的要使用ajax从一个Action生成这个,那么你可以拥有一个依赖IHtmlGenerator
的控制器并以这种方式生成你的令牌。