我在Visual Studio 2008中有一个WCF服务项目,它包含大约12个方法,其中一些返回原始类型,如bool或string.我还有一个Visual Studio单元测试项目,它引用了已发布的WCF服务.当所有返回类型都是原始时,Test Project会成功编译.
如果我向返回自定义类的服务添加一个新方法,发布它并更新测试项目中的服务引用,它就不会编译.错误是: -
全部在自动生成的reference.cs文件中.
WCF服务方法的合同是: -
Page GetItem(string path);
Run Code Online (Sandbox Code Playgroud)
Page类具有DataContract属性,它的公共属性具有DataMember属性.
我不愿意修改Reference.cs文件,因为每次更新服务时我都需要这样做.
任何人都知道为什么会这样吗?
斯图尔特.
我们希望在 ASP.NET Core WebDAV 服务器示例 ( https://www.webdavsystem.com/server/server_examples/cross_platform_asp_net_core_sql/ ) 中实现 MS-OFBA 。该示例已经具有用于基本和摘要身份验证的代码,但我们需要支持 MS-OFBA。
我已经实现了一个类似于现有基本和摘要中间件类的 MSOFBAuthMiddleware 类,如果它是来自 Office 应用程序的请求,我们会在其中设置所需的“X-FORMS_BASED_AUTH_”标头。
这在一定程度上起作用:
最初我们一直在尝试使用本地登录页面,但最终我们更愿意使用我们现有的 Identity Server 登录页面。我们可以再次显示登录页面,但重定向不起作用。
在登录后的身份服务器中,我们应该重定向到“/connect/authorize/login?client_id=mvc.manual&response_type=id_token&scope=openid%20profile%20&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Faccount%2Fcallback&state=random_state&nonce=random_no form_post”,但实际上我们被重定向到应用程序“/”的根目录。
更新:我已经解决了这个重定向问题,Identity Server 现在重定向到正确的 URL,但中间件中的 httpContext.User.Identity.IsAuthenticated 值仍然始终为 false。
Startup.cs(部分)
public void ConfigureServices(IServiceCollection services)
{
services.AddWebDav(Configuration, HostingEnvironment);
services.AddSingleton<WebSocketsService>();
services.AddMvc();
services.Configure<DavUsersOptions>(options => Configuration.GetSection("DavUsers").Bind(options));
services.AddAuthentication(o =>
{
o.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}
).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
//app.UseBasicAuth(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Azure AD 测试登录到我们的 Web 应用程序,但“登录”按钮上的单击操作似乎未注册。这是代码:
\n\nnamespace WebApp.Tests\n{\n using System;\n using System.IO;\n using System.Threading;\n using FluentAssertions;\n using Microsoft.VisualStudio.TestTools.UnitTesting;\n using OpenQA.Selenium;\n using OpenQA.Selenium.IE;\n using OpenQA.Selenium.Remote;\n using OpenQA.Selenium.Support.UI;\n\n [TestClass]\n public class LoginTests\n {\n [TestMethod]\n public void CanLogin()\n {\n string internetExplorerDriverServerDirectory = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);\n IWebDriver driver = new InternetExplorerDriver(internetExplorerDriverServerDirectory)\n {\n Url = "https://localhost:44399"\n };\n\n try\n {\n driver.Manage().Cookies.DeleteAllCookies();\n\n WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));\n wait.Until(d => d.FindElement(By.Id("logonIdentifier")));\n\n driver.FindElement(By.Id("logonIdentifier")).SendKeys("username");\n driver.FindElement(By.Id("password")).SendKeys("password"); \n driver.FindElement(By.Id("next")).Click();\n\n wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));\n wait.Until(d => d.FindElement(By.ClassName("logo_title")));\n\n driver.FindElement(By.ClassName("logo_title")).Text.Should().Contain("HELLO!");\n }\n finally\n {\n driver.Close();\n …Run Code Online (Sandbox Code Playgroud) 我似乎无法让这个工作,这是我的(剥离)代码: -
[XmlRoot("report")]
public class Report
{
[XmlArray("sections"), XmlArrayItem("section")]
public List<Section> Sections;
}
public class Section
{
public Report Report;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?