我遇到了防伪令牌的问题:(我已经创建了自己的User类,但是现在每次进入/ Account/Register页面时我都会收到错误.错误是:
" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier "或" http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider " 类型的声明是不在提供的ClaimsIdentity上.要使用基于声明的身份验证启用防伪令牌支持,请验证配置的声明提供程序是否在其生成的ClaimsIdentity实例上提供这两个声明.如果配置的声明提供程序使用不同的声明类型作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig.UniqueClaimTypeIdentifier来配置它.
我找到了这篇文章:
所以我将Application_Start方法更改为:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Email;
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到了这个错误:
提供的ClaimsIdentity中没有" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress " 类型的声明.
有没有人遇到过这个?如果是这样,你知道如何解决它吗?
提前干杯,
r3plica
更新1
这是我的自定义用户类:
public class Profile : User, IProfile
{
public Profile()
: base()
{
this.LastLoginDate = DateTime.UtcNow;
this.DateCreated = DateTime.UtcNow;
}
public Profile(string userName)
: base(userName)
{
this.CreatedBy = this.Id;
this.LastLoginDate = DateTime.UtcNow;
this.DateCreated = DateTime.UtcNow;
this.IsApproved = true;
}
[NotMapped]
public HttpPostedFileBase File { …Run Code Online (Sandbox Code Playgroud) 我有2个项目,一个Web API和一个客户端angularJS项目(使用Empty Project模板创建).我的客户端要求我强制使用SSL,因此对于Web API,我创建了一个filterAttribute.无论如何,我将两个项目都改为SSL Enabled.问题是,两个项目都显示其SSL URL为http:// localhost:44300,这显然不起作用.
所以我决定更改applicationhost.config文件.对于Visual Studio 2015,它似乎位于.vs文件夹中.当我在那里更改它时,如果我打开我的项目,它会覆盖它并将其重新置于44300.
我尝试创建一个虚拟目录(在我的API的属性中),我试图覆盖应用程序根URL.都没有奏效.
有谁知道如何使用不同的SSL端口?
我正在使用光滑来制作这样的旋转木马:
我使用过这些设置:
{
dots: false,
slidesToShow: 3,
focusOnSelect: true,
swipeToSlide: true,
centerMode: true,
event: {
init: scope.init
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎让实际的动画工作得很好.下一部分(这是导致我问题的一点)是试图让" 点 "和文本以大小颜色设置动画.有谁知道我会怎么做呢?我正在尝试使用滑动方法,但问题是我正在滑动哪个项目最接近中心.
任何帮助将不胜感激.
所以我设法做了一部分.我将init回调添加到选项中,并添加了一些代码来计算中心元素的位置及其大小.
// Extend our scope
angular.extend(scope, {
init: function (e, slick) {
// Get our dragable element
var sizes = scope.options.sizes,
draggableElement = element[0].getElementsByClassName('draggable')[0],
centerElement = draggableElement.getElementsByClassName('slick-center')[0].childNodes[0];
// Set the active dimensions and margins
centerElement.style.width = sizes.finish + 'px';
centerElement.style.height = sizes.finish + 'px';
centerElement.style.borderRadius = sizes.finish / 2 + 'px';
centerElement.style.marginTop …Run Code Online (Sandbox Code Playgroud) 我已经阅读了一些文章,说明您现在可以从 type script 2.9 直接导入 json。所以我修改了我的tsconfig.json文件如下:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
},
"paths": {
"@data/*": ["src/core/data/*"],
"@models/*": ["src/core/models/*"],
"@services/*": ["src/core/*"],
"@environments/*": ["src/environments/*"]
},
"resolveJsonModule": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
}
Run Code Online (Sandbox Code Playgroud)
然后我像这样将 json 导入到我的组件中:
import particlesJson from '../../assets/particles.json';
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我在控制台中收到错误消息:
src/app/profile/login.component.ts(3,27) 中的错误:错误 TS2732:找不到模块“../../assets/particles.json”。考虑使用“--resolveJsonModule”导入带有“.json”扩展名的模块
我怎样才能阻止该错误出现?
我需要构建一个自定义UserStore(基本上因为我有一些默认情况下不属于框架的要求)但我无法找到任何关于如何执行此操作的文档.
我看到两条信息很接近:
基本上我需要知道如何创建用户以及如何登录.其余我可以弄明白.我想主要问题是处理密码等.
有没有人知道任何可能对我有帮助的文件?或者,如果默认的UserStore存在细分,那么它的内部方法会很好(我可以从那里进行调整).
我有一个div,其高度设置为320像素,然后它的子设置为100%的宽度.那个孩子是一个SVG文件,我将宽度设置为容器的200%.在chrome和firefox工作正常,我得到一个像这样的好图像:
HTML看起来像这样:
<div class="kit-template ng-isolate-scope front">
<div class="svg-document ng-scope">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 259.5 131.4" enable-background="new 0 0 259.5 131.4" xml:space="preserve" class="ng-scope">
<!-- Removed for brevity -->
</svg>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS/SASS看起来像这样:
.kit-template {
overflow: hidden;
position: relative;
height: 320px;
.svg-document {
width: 100%;
overflow: hidden;
margin: 0 auto;
/*position: absolute;
bottom: 0;*/
svg {
width: 200%;
path, polyline, polygon, rect {
cursor: pointer;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
就像我说的,这适用于Chrome,Firefox和IE Edge.但是在IE11中,我得到了这个:
如果我检查元素,我可以看到SVG看起来左右有填充,但我可以向你保证不会.
有谁知道为什么会这样,以及我如何解决它?
更新1
我在codepen上创建了一个非常简单的版本,因此您可以看到问题.这里是:
http://codepen.io/r3plica/pen/Kdypwe
在chrome,firefox,Edge和IE11中查看.你会看到只有IE11才有问题.
我试图垂直对齐列表中的一些文本并遇到问题.首先,你需要知道我已经用自定义图像替换了list-style-image.这是我的CSS:
ul.cogs li {
list-style-image: url(Images/li_cog.png);
height: 50px;
line-height: 50px;
}
Run Code Online (Sandbox Code Playgroud)
我试图看看是否有办法让文本与中间对齐.我试过了:
vertical-align:middle;
这没用,所以我试过:
line-height:50px;
这也没用,所以我试过:
显示:表格
哪个有效,但图像从列表项中消失了....
有没有人知道如何使这个工作?
我在.net和NUGet中发现的令人讨厌的事情之一就是我永远不知道默认情况下安装了什么版本的东西.当尝试向现有项目添加内容时,这可能会非常令人沮丧.....
这是我目前的困境.
我有一个只有MVC的MVC 5项目.这个项目非常庞大,将其转移到另一个项目的工作需要花费太多时间.所以,我打开了NUGet并输入了WebApi并安装了它.
然后我创建了一个空白的WebApi项目,其中设置了个人帐户,并将StartUp代码复制到我当前的StartUp以及所需的任何其他配置中.
然后我开始创建我的AccountController,它直接从我创建的干净项目中复制.它看起来像这样:
[Authorize]
[RoutePrefix("api/Account")]
public class AccountController : ApiController
{
private const string LocalLoginProvider = "Local";
public AccountController()
: this(Startup.UserManagerFactory(), Startup.OAuthOptions.AccessTokenFormat)
{
}
public AccountController(UserManager<IdentityUser> userManager,
ISecureDataFormat<AuthenticationTicket> accessTokenFormat)
{
UserManager = userManager;
AccessTokenFormat = accessTokenFormat;
}
public UserManager<IdentityUser> UserManager { get; private set; }
public ISecureDataFormat<AuthenticationTicket> AccessTokenFormat { get; private set; }
// GET api/Account/UserInfo
[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
[Route("UserInfo")]
public UserInfoViewModel GetUserInfo()
{
ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
return new UserInfoViewModel
{
UserName = User.Identity.GetUserName(),
HasRegistered = …Run Code Online (Sandbox Code Playgroud) 另一个快速问题.我有这个简单的方法:
#region Fields
private Collection<Address> _addresses;
#endregion
#region Public methods
public Address DeliveryAddress()
{
if (_addresses == null)
if (this.Id > 0)
_addresses = Core.Data.Addresses.GetClient(this.Id);
return _addresses.SingleOrDefault(x => x.TypeId == AddressType.Delivery);
}
public Address InvoiceAddress()
{
if (_addresses == null)
if (this.Id > 0)
_addresses = Core.Data.Addresses.GetClient(this.Id);
return _addresses.SingleOrDefault(x => x.TypeId == AddressType.Invoice);
}
#endregion
Run Code Online (Sandbox Code Playgroud)
正如你可以看到我试图返回的一个结果DeliveryAddress,并为一个结果InvoiceAddress.我的问题是我希望链接表达式创建Address()if SingleOrDefault返回的新实例null.我对linq很新,所以我不确定SingleOrDefault我应该使用的是正确的表达式.
这应该很简单,但我不知道该怎么做.我有一个选择控件,如下所示:
<div class="form-group" ng-class="{ 'has-error' : saveForm.status.$invalid && !saveForm.status.$pristine }">
<label class="control-label">Status</label>
<select class="form-control" name="status" ng-options="status.name for status in controller.statuses.data track by status.id" ng-model="controller.model.data.statusId" required>
<option value="">Select a status</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
在NG-模型是必然controller.model.data.status因为我想整个对象的时间.现在我只需要选择的id,所以我将ng-model更改为controller.model.data.statusId,正如您所期望的那样整个状态对象现在绑定到该模型位置.如何在select控件中显示名称的同时选择id而不是整个对象?
请求的codepen示例:
c# ×4
asp.net-mvc ×3
angularjs ×2
asp.net ×2
css ×2
html ×2
angular ×1
iis-express ×1
javascript ×1
jquery ×1
json ×1
linq ×1
list ×1
svg ×1
typescript ×1