我正在对Azure Active Directory的web api用户进行身份验证.现在我想获得该用户所属的组列表.
我更改了应用程序清单以包含
"groupMembershipClaims": "All",
Run Code Online (Sandbox Code Playgroud)
但所有这一切都是添加声明hasGroups但没有组名.
我在门户网站中为我的应用程序授予了Windows Azure Active Directory的所有(8)委托权限.
我需要按日期对一组对象进行分组:
var meetings =
[
{date:"2001-01-01 13:00", place:"park"},
{date:"2001-01-01 14:00", place:"school"},
{date:"2001-01-02 11:00", place:"house"}
];
Run Code Online (Sandbox Code Playgroud)
所以它变成:
var groupedMeetings =
[
{
day:"2001-01-01",
meetings:
[
{date:"2001-01-01 13:00", place:"park"},
{date:"2001-01-01 14:00", place:"school"}
]
},
{
day:"2001-01-02",
meetings:
[
{date:"2001-01-02 11:00", place:"house"}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我能够用 _.groupBy 和 _.map 将它们分组
var g = _.groupBy(meetings, function(i){return getDatePart(i.date);});
var groupedMeetings = _.map(g, function(items,key){return {day:key, meetings:items};});
Run Code Online (Sandbox Code Playgroud)
但是我在使用https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/lodash/lodash.d.ts在 Typescript 中做同样的事情时遇到了问题
首先,我声明了我的课程:
class Meeting
{
date: Date,
place: Meeting[]
}
class GroupedMeeting
{
constructor(private day: Date, …Run Code Online (Sandbox Code Playgroud) 我已经给出了我无法更改的XML,我需要将其反序列化为自定义类:
<Person>
<Addresses>
<MainAddress>
<Country />
<City />
</MainAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
<AdditionalAddress>
<Country />
<City />
</AdditionalAddress>
... other additional addresses
</Addresses>
... other elements
</Person>
Run Code Online (Sandbox Code Playgroud)
然后我反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(Person), namespace);
Person person = serializer.Deserialize(stream) as Person;
Run Code Online (Sandbox Code Playgroud)
如果简单元素被反序列化,则反序列化器可以正常工作.当有像地址这样的元素时,我在它的类上实现了IXmlSerializable:链接文本
问题是reader.ReadElementContentAsString()不能与复杂元素一起使用.
有没有人发现/编码扩展方法批量查询数据(使用linq到sql)?我已经看过IEnumerable扩展,但我正在寻找我可能会使用的东西:
IQueryable<Order> orders = from i in db.Orders select i;
foreach(var batch in orders.InBatches(100))
{
//batch of 100 products
foreach(var order in batch)
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud) 我需要在.NET 3.5中的自定义UserNamePasswordValidator中访问端点地址.
我正在安排
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
Run Code Online (Sandbox Code Playgroud)
和
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
Run Code Online (Sandbox Code Playgroud)
但是UserNamePasswordValidator中的HttpContext.Current为null.我在IIS 7.5中托管服务.我也尝试过.NET 4.0,但是我需要在3.5中找到解决方案.
有没有解决方法?
我有 WCF 服务。我要求客户使用证书进行身份验证。这是服务配置:
<system.serviceModel>
<services>
<service name="FilmLibrary.FilmManager" behaviorConfiguration="FilmService.Service1Behavior">
<endpoint address="manager" name="certBinding" binding="basicHttpBinding" contract="FilmContract.IFilmManager" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="certBinding">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="FilmService.Service1Behavior">
<serviceCredentials>
<clientCertificate>
<authentication trustedStoreLocation="LocalMachine"
certificateValidationMode="PeerTrust" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
公钥安装在LocalMachine, Trusted People
客户端配置如下:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="certBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Message">
<message clientCredentialType="Certificate"/> …Run Code Online (Sandbox Code Playgroud) 这是可以将XmlSerializer反序列化为Nullable <int>的副本吗?但我需要一个既不会改变xml文档也不会强迫我实现IXmlSerializable接口的解决方案.我不想实现IXmlSerializable,因为除了<number> 之外还有许多其他元素可以正确反序列化.
我的xml可以包含元素<number>4</number>或<number/>
<root>
...
either <number>4</number> or <number/>
... [other elements]
</root>
Run Code Online (Sandbox Code Playgroud)
类
public class root
{
public int? number {get; set;}
...
}
Run Code Online (Sandbox Code Playgroud)
不起作用.
我的页面上有TextBox和RequiredFieldValidator.我也有链接,调用一些简单的JavaScript.
<asp:TextBox ID="TextBox1" runat="server" />
<asp:RequiredFieldValidator
ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox1"
Display="Dynamic" />
<asp:LinkButton ID="Link1" runat="server" OnClientClick="DoSomething(); return false;" CausesValidation="false"Text="Do" />
function DoSomething() {
textbox1.val("blah"); }
Run Code Online (Sandbox Code Playgroud)
当用户在文本框中键入内容然后删除该文本并关注下一个控件时 - 然后验证器将触发.然后用户可以使用使用javascript添加文本的链接.TextBox1文本不再为空,但RequiredFieldValidator仍显示错误消息.怎么预防?
我想在XML模式中定义一个允许空字符串或某些特定模式的元素,例如:
<Code/>
<Code></Code>
<Code> </Code>
<Code>11111</Code>
<Code>111111</Code> - INVALID
<Code>AAAAA</Code> - INVALID
Run Code Online (Sandbox Code Playgroud)
如何修改现有限制?
<xs:element name="Code">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{5}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud) 我有ASP.NET应用程序与表单身份验证.它运行良好,但我有一个目录与olly .txt文件(没有aspx文件)我希望用户不访问(或只登录用户).
我将web.config添加到此目录:
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
编辑:
这仅适用于.aspx文件.它不适用于.txt文件和类似文件.用户无法浏览此目录或子目录,但知道.txt文件名可以访问它.
我尝试IIS6和IIS 7.5.在IIS6上.txt文件也受到限制,但在IIS 7.5上并非如此,可能是IIS配置问题.
asp.net ×4
.net ×2
wcf ×2
.net-3.5 ×1
adal ×1
c# ×1
certificate ×1
iis-7 ×1
iis-7.5 ×1
javascript ×1
linq-to-sql ×1
lodash ×1
security ×1
typescript ×1
validation ×1
xml ×1
xsd ×1