我正在尝试编写一个返回会话变量的Web服务.调用此Web服务的应用程序可以访问当前会话的会话ID.
我尝试通过创建一个"ASPNet_SessionID"cookie,然后将其作为代理类的cookie容器设置为Web服务,但这不起作用.我是这样做的,
protected void CallService(string sessionID)
{
localhost.AuthService auths = new localhost.AuthService(); //Service Proxy class
System.Net.CookieContainer cookieJar = new System.Net.CookieContainer();
System.Net.Cookie newCookie = new System.Net.Cookie("ASPNet_SessionID", sessionID);
newCookie.Domain = "http://localhost";
cookieJar.Add(newCookie);
auths.CookieContainer = cookieJar;
string SessionData = auths.GetSessionData();
Run Code Online (Sandbox Code Playgroud)
GetSessionData Web方法只返回Session数据,如下所示:
[WebMethod(EnableSession=true)]
public string GetSessionData(string sessionID) {return ((string)Session["user"]);}
Run Code Online (Sandbox Code Playgroud)
这种方法应该有效吗,还是我做错了什么?
UPD:此链接实际上解决了我的问题 - 我能够访问所有会话InProc并能够通过ID选择正确的会话:
http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx
我有一个可分页和可过滤的网格,我设置为使用新的Kendo Grid Excel功能导出到excel.但是,即使我将AllPages设置为true,我也只得到前10个结果,无论我将pagesize设置为什么.删除Pageable属性给了我完整的结果.其他人有这个问题吗?
这是我网格的设置.
@(Html.Kendo().Grid(Model.CloudUsage)
.Name("PCloudUsages")
.ToolBar(toolbar =>
{
toolbar.Excel().HtmlAttributes(new { @class = "toolbar-field" });
})
.Columns(columns =>
{
columns.Bound(c => c.ProjectCode).Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
columns.Bound(c => c.ProjectName).Title("ProjectName").Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").ShowOperators(false)));
})
.Pageable(p => p.ButtonCount(5).PageSizes(new int[] { 10, 20, 50, 100 }))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Sortable()
.Excel(excel => excel.FileName("CloudUsages.xlsx").Filterable(true).ProxyURL(Url.Action("ExportExcel", "Admin")).AllPages(true))
.DataSource(source => source
.Ajax()
.Model(m => m.Id(itm => itm.ProjectName))
.Read(read => read.Action("PCloudUsages_Read", "Admin").Data("GetDates"))
.Sort(sort => sort.Add(itm => itm.ProjectName).Descending())
)
)
Run Code Online (Sandbox Code Playgroud)
和控制器方法
public ActionResult ExportExcel(string contentType, string base64, string …Run Code Online (Sandbox Code Playgroud) 我在一个站点上处理多个成员提供商时遇到问题.
我有一个注册页面,用于创建用户并将其添加到AD域.在我有一个会员提供者之前,我打过电话
Membership.CreateUser(txtUsername.Text, txtPassword.Text)
Run Code Online (Sandbox Code Playgroud)
根据页面上的用户输入创建用户名.
但是,我在web.config中添加了另一个成员资格提供程序,以便可以使用登录页面从另一个AD登录.现在,我的注册页面不起作用,因为(我假设)有两个会员提供商?
我怎样才能解决这个问题?如何在调用Membership.CreateUser时指定要使用的提供程序?
谢谢.
编辑:
如下所述,正确的方法是:
MembershipCreateStatus newStatus = new MembershipCreateStatus();
Membership.Providers["ProviderName"].CreateUser(txtUserName.Text, txtPassword.Text, null, null, null, true,null, out newStatus);
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个非常简单的 for 循环,看起来像这样
for(int i = 0; i< 26; i++)
{
DoSomething(i);
}
Run Code Online (Sandbox Code Playgroud)
DoSomething 函数大约需要大约 3 分钟才能执行。我想编写一个 for 循环,每分钟调用一次 DoSomething() 而不等待前一个调用完成。我试图做这样的事情:
Parallel.For(0, 26, i =>
{
DoSomething(i);
System.Threading.Thread.Sleep(60000);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它首先调用然后睡眠。颠倒这些步骤还意味着 DoSomething 方法在每次调用之间立即调用 fire。我如何设置它以便每分钟都调用 DoSomething?
谢谢!
c# ×4
asp.net ×2
amazon-s3 ×1
asp.net-mvc ×1
jenkins ×1
kendo-grid ×1
kendo-ui ×1
parallel.for ×1
razor ×1
session ×1