我在Visual Studio 2015中创建了新的ASP.NET 5 MVC项目.在项目创建向导中,我选择显示.NET framework 4.6的模板,然后在下一个屏幕上选择ASP.NET 5预览中的"Web应用程序"模板.
但是,在创建之后,项目似乎只在project.json的"frameworks"部分中列出了"dnx451"和"dnxcore50":
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
Run Code Online (Sandbox Code Playgroud)
我试图将"dnx451"更改为"dnx46".该项目已经很好地构建但是当我尝试运行它时,我收到以下错误消息:
当前运行时目标框架与"..."不兼容.
当前运行时目标框架:'DNX,Version = v4.5.1(dnx451)'类型:CLR架构:x86版本:1.0.0-beta5
如何更改ASP.NET 5项目的"目标框架"?
这是我的global.json现在:
{
"projects": [
"src",
"test",
"wrap"
],
"sdk": {
"version": "1.0.0-beta5",
"runtime": "clr",
"architecture": "x86"
}
}
Run Code Online (Sandbox Code Playgroud)
但那里列出的是什么并不重要.我已经尝试过不同版本的1.0.0-beta5和最新的1.0.0-beta6
我现在看到的ASP.NET Identity 3.0的所有示例都使用Entity Framework来存储与用户相关的数据.
是否有任何不使用Entity Framework的示例以及哪些ApplicationUser类不是派生自Microsoft.AspNet.Identity.EntityFramework.IdentityUser?
在ASP.NET Identity 2.x中,需要实现IUser接口.现在似乎没有这样的界面 - 所以我们不确定如何User正确定义类.几乎没有关于这个主题的文档.
第二个问题是AddIdentity打电话Startup.ConfigureServices.它与Microsoft.AspNet.Identity.EntityFramework命名空间中的特定类非常相关,并且不清楚如何在没有这些类的情况下注册身份服务.
我们正在开发ASP.NET MVC 6项目,并且有必要从文件系统源以外的地方呈现Razor视图(特别是Azure Blob存储,但这并不重要).之前(在MVC 5中)可以创建和注册自定义VirtualPathProvider,它可以从DB或资源DLL中获取视图内容(例如).
似乎MVC 6中的方法已经改变了.有人知道在哪里寻找吗?
UPD:这是我正在寻找的代码示例:
public IActionResult Index()
{
ViewBag.Test = "Hello world!!!";
string htmlContent = "<html><head><title>Test page</title><body>@ViewBag.Test</body></html>";
return GetViewFromString(htmlContent);
}
Run Code Online (Sandbox Code Playgroud)
问题是:如何实现该GetViewFromString功能?
我们将 ASP.NET MVC 5.x WebAPI 2.x Web 应用程序作为 Azure 云服务运行,并使用令牌授权对我们的服务进行 REST API 调用。
问题是:每次我们重新部署我们的应用程序时 - 所有当前令牌都变得无效(服务器对任何请求都返回“非授权”响应)。
问题是:为什么会发生这种情况以及如何防止这种行为?
UPD:这是发出令牌的代码:
public string GetOAuthToken(IUser user) {
if (user != null) {
var identity = new ClaimsIdentity(Startup.OAuthOptions.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName));
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id));
AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
var currentUtc = DateTime.UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(36600)); //About 100 years
string AccessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);
return AccessToken;
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
UPD2:似乎由默认令牌端点 (/Token) 生成的令牌在重新部署后不会失效 - 所以问题(我认为)出在我们为“手工”令牌设置的某些属性中。我在哪里可以找到创建默认令牌的代码(由 /Token 端点返回)?
我们将发布一个开源库,其中包含一个用 C# 编写的服务器端部分(用于 Web API、提取元数据、数据库相关操作等)和一个用 TypeScript 编写的执行 UI 的客户端部分.
通常,我们的存储库具有经典结构,例如:
但是,现在我不确定如何组织这个 Git 存储库,因为所有这些部分(可能包含这两个部分的示例项目除外)对于客户端和服务器端将完全不同。
所以,现在,我们得到了这样的结构:
但是,我仍然不太确定这种结构,并希望听到社区的任何想法或建议。
可能,最好将它放在 2 个不同的存储库中?但是,我们希望保留客户端和服务器端部分的统一版本控制,并且不想不必要地使事情复杂化。
asp.net-core ×3
asp.net ×2
asp.net-mvc ×2
.net ×1
.net-core ×1
azure ×1
git ×1
razor ×1
typescript ×1