Changeset 4298


Ignore:
Timestamp:
08/24/10 02:37:56 (12 years ago)
Author:
swagner
Message:

Worked on OKB user authentication (#1167)

Location:
trunk/sources
Files:
6 deleted
16 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Services.OKB.AttributeSelection/3.3/AttributeSelector.cs

    r4279 r4298  
    5656      typeof(Client).Name,
    5757      typeof(User).Name,
    58       typeof(ExperimentCreator).Name,
    5958    };
    6059
     
    7776      TableName = tableName;
    7877      FieldName = fieldName;
    79       if (tableName == typeof(ExperimentCreator).Name)
    80         tableName = typeof(User).Name;
    8178      TableType = GetTableType(tableName);
    8279      ITable Table = GetTable(okb, tableName);
  • trunk/sources/HeuristicLab.Services.OKB.AttributeSelection/3.3/RunAttributeSelector.cs

    r4279 r4298  
    8585      { typeof(User), typeof(Run) },
    8686      { typeof(Experiment), typeof(Run) },
    87       { typeof(ExperimentCreator), typeof(Experiment) },
    8887      { typeof(Project), typeof(Experiment) },
    8988      { typeof(Algorithm), typeof(Experiment) },
     
    198197        ExpressionTools.GetSelector(run => run.Experiment, x => x.Id),
    199198
    200         ExpressionTools.GetSelector(run => run.Experiment.ExperimentCreators.Single(), xc => xc.User.Id),
    201         ExpressionTools.GetSelector(run => run.Experiment.ExperimentCreators.Single(), xc => xc.User.Name),
    202 
    203199        ExpressionTools.GetSelector(run => run.Experiment.Project, p => p.Id),
    204200        ExpressionTools.GetSelector(run => run.Experiment.Project, p => p.Name),
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj

    r4294 r4298  
    121121  </ItemGroup>
    122122  <ItemGroup>
    123     <Compile Include="Authentication.cs" />
    124     <Compile Include="ExperimentKit.cs" />
    125123    <None Include="OKB.designer.cs">
    126124      <AutoGen>True</AutoGen>
     
    161159    </None>
    162160    <None Include="Properties\Settings.settings">
    163       <Generator>SettingsSingleFileGenerator</Generator>
     161      <Generator>PublicSettingsSingleFileGenerator</Generator>
    164162      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    165163    </None>
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml

    r4276 r4298  
    11<?xml version="1.0" encoding="utf-8"?><Database Name="OKB" EntityNamespace="HeuristicLab.Services.OKB.DataAccess" ContextNamespace="HeuristicLab.Services.OKB.DataAccess" Class="OKBDataContext" Serialization="Unidirectional" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
    2   <Connection Mode="AppSettings" ConnectionString="Data Source=localhost;Initial Catalog=OKB;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.OKB.DataAccess.Properties.Settings" SettingsPropertyName="OKBConnectionString" Provider="System.Data.SqlClient" />
     2  <Connection Mode="AppSettings" ConnectionString="Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.OKB.DataAccess.Properties.Settings" SettingsPropertyName="OKBConnectionString" Provider="System.Data.SqlClient" />
    33  <Table Name="dbo.[User]" Member="Users">
    44    <Type Name="User">
    55      <Column Name="Id" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    66      <Column Name="Name" Type="System.String" DbType="VarChar(200) NOT NULL" CanBeNull="false" />
    7       <Association Name="User_ExperimentCreator" Member="ExperimentCreators" ThisKey="Id" OtherKey="UserId" Type="ExperimentCreator" />
    87      <Association Name="User_Run" Member="Runs" ThisKey="Id" OtherKey="UserId" Type="Run" />
    98    </Type>
     
    9392      <Column Name="ProblemId" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    9493      <Association Name="Experiment_CharParameterValue" Member="CharParameterValues" ThisKey="Id" OtherKey="ExperimentId" Type="CharParameterValue" />
    95       <Association Name="Experiment_ExperimentCreator" Member="ExperimentCreators" ThisKey="Id" OtherKey="ExperimentId" Type="ExperimentCreator" />
    9694      <Association Name="Experiment_FloatParameterValue" Member="FloatParameterValues" ThisKey="Id" OtherKey="ExperimentId" Type="FloatParameterValue" />
    9795      <Association Name="Experiment_IntParameterValue" Member="IntParameterValues" ThisKey="Id" OtherKey="ExperimentId" Type="IntParameterValue" />
     
    10199      <Association Name="Project_Experiment" Member="Project" ThisKey="ProjectId" OtherKey="Id" Type="Project" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    102100      <Association Name="Algorithm_Experiment" Member="Algorithm" ThisKey="AlgorithmId" OtherKey="Id" Type="Algorithm" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    103     </Type>
    104   </Table>
    105   <Table Name="dbo.ExperimentCreator" Member="ExperimentCreators">
    106     <Type Name="ExperimentCreator">
    107       <Column Name="ExperimentId" Type="System.Int32" DbType="Int NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    108       <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    109       <Association Name="Experiment_ExperimentCreator" Member="Experiment" ThisKey="ExperimentId" OtherKey="Id" Type="Experiment" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    110       <Association Name="User_ExperimentCreator" Member="User" ThisKey="UserId" OtherKey="Id" Type="User" IsForeignKey="true" />
    111101    </Type>
    112102  </Table>
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.dbml.layout

    r4276 r4298  
    6969      </nestedChildShapes>
    7070    </classShape>
    71     <classShape Id="12d4c13b-7509-49ae-998b-a0b43f160db7" absoluteBounds="8.125, 7.5, 2, 1.1939925130208309">
    72       <DataClassMoniker Name="/OKBDataContext/ExperimentCreator" />
    73       <nestedChildShapes>
    74         <elementListCompartment Id="e4e83d65-2fb2-4364-8f61-64ce8440b3c4" absoluteBounds="8.14, 7.9600000000000009, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    75       </nestedChildShapes>
    76     </classShape>
    7771    <classShape Id="51fb443c-2ed1-4364-9dc3-84a606c921f5" isExpanded="false" absoluteBounds="8.125, 4.25, 2, 0.45">
    7872      <DataClassMoniker Name="/OKBDataContext/FloatParameterValue" />
     
    172166      </nodes>
    173167    </associationConnector>
    174     <associationConnector edgePoints="[(7.07291666666667 : 5.82859537760417); (7.07291666666667 : 6.50172191879847); (7.82609398177643 : 6.50172191879847); (7.82609398177643 : 8.1875); (8.125 : 8.1875)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
    175       <AssociationMoniker Name="/OKBDataContext/Experiment/Experiment_ExperimentCreator" />
    176       <nodes>
    177         <classShapeMoniker Id="f91d981c-4c4c-407a-aedd-bc0091bdd664" />
    178         <classShapeMoniker Id="12d4c13b-7509-49ae-998b-a0b43f160db7" />
    179       </nodes>
    180     </associationConnector>
    181     <associationConnector edgePoints="[(10.625 : 7.30729140533756); (10.385 : 7.30729140533756); (10.385 : 8.26562470439823); (10.125 : 8.26562470439823)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    182       <AssociationMoniker Name="/OKBDataContext/User/User_ExperimentCreator" />
    183       <nodes>
    184         <classShapeMoniker Id="6abee4a0-9a54-4c51-bb1b-31061cb25f9f" />
    185         <classShapeMoniker Id="12d4c13b-7509-49ae-998b-a0b43f160db7" />
    186       </nodes>
    187     </associationConnector>
    188168    <associationConnector edgePoints="[(7.5 : 4.475); (8.125 : 4.475)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    189169      <AssociationMoniker Name="/OKBDataContext/Experiment/Experiment_FloatParameterValue" />
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/OKB.generated.cs

    r4276 r4298  
    33// <auto-generated>
    44//     This code was generated by LINQ to SQL template for T4 C#
    5 //     Generated at 08/23/2010 01:35:16
     5//     Generated at 08/24/2010 01:30:56
    66//
    77//     Changes to this file may cause incorrect behavior and will be lost if
     
    5757    partial void UpdateExperiment(Experiment instance);
    5858    partial void DeleteExperiment(Experiment instance);
    59     partial void InsertExperimentCreator(ExperimentCreator instance);
    60     partial void UpdateExperimentCreator(ExperimentCreator instance);
    61     partial void DeleteExperimentCreator(ExperimentCreator instance);
    6259    partial void InsertFloatParameterValue(FloatParameterValue instance);
    6360    partial void UpdateFloatParameterValue(FloatParameterValue instance);
     
    210207    }
    211208   
    212     public Table<ExperimentCreator> ExperimentCreators
    213     {
    214       get { return GetTable<ExperimentCreator>(); }
    215     }
    216    
    217209    public Table<FloatParameterValue> FloatParameterValues
    218210    {
     
    360352    private void Initialize()
    361353    {
    362       _ExperimentCreators = new EntitySet<ExperimentCreator>(attach_ExperimentCreators, detach_ExperimentCreators);
    363354      _Runs = new EntitySet<Run>(attach_Runs, detach_Runs);
    364355      OnCreated();
     
    408399   
    409400    #region Associations
    410     private EntitySet<ExperimentCreator> _ExperimentCreators;
    411     [Association(Name=@"User_ExperimentCreator", Storage=@"_ExperimentCreators", ThisKey=@"Id", OtherKey=@"UserId")]
    412     [DataMember(Order=3, EmitDefaultValue=false)]
    413     public EntitySet<ExperimentCreator> ExperimentCreators
    414     {
    415       get {
    416         if (serializing && !_ExperimentCreators.HasLoadedOrAssignedValues) {
    417           return null;
    418         }
    419         return _ExperimentCreators;
    420       }
    421       set {
    422         _ExperimentCreators.Assign(value);
    423       }
    424     }
    425 
    426     private void attach_ExperimentCreators(ExperimentCreator entity)
    427     {
    428       SendPropertyChanging();
    429       entity.User = this;
    430     }
    431    
    432     private void detach_ExperimentCreators(ExperimentCreator entity)
    433     {
    434       SendPropertyChanging();
    435       entity.User = null;
    436     }
    437401    private EntitySet<Run> _Runs;
    438402    [Association(Name=@"User_Run", Storage=@"_Runs", ThisKey=@"Id", OtherKey=@"UserId")]
    439     [DataMember(Order=4, EmitDefaultValue=false)]
     403    [DataMember(Order=3, EmitDefaultValue=false)]
    440404    public EntitySet<Run> Runs
    441405    {
     
    21262090    {
    21272091      _CharParameterValues = new EntitySet<CharParameterValue>(attach_CharParameterValues, detach_CharParameterValues);
    2128       _ExperimentCreators = new EntitySet<ExperimentCreator>(attach_ExperimentCreators, detach_ExperimentCreators);
    21292092      _FloatParameterValues = new EntitySet<FloatParameterValue>(attach_FloatParameterValues, detach_FloatParameterValues);
    21302093      _IntParameterValues = new EntitySet<IntParameterValue>(attach_IntParameterValues, detach_IntParameterValues);
     
    22542217      entity.Experiment = null;
    22552218    }
    2256     private EntitySet<ExperimentCreator> _ExperimentCreators;
    2257     [Association(Name=@"Experiment_ExperimentCreator", Storage=@"_ExperimentCreators", ThisKey=@"Id", OtherKey=@"ExperimentId")]
    2258     [DataMember(Order=6, EmitDefaultValue=false)]
    2259     public EntitySet<ExperimentCreator> ExperimentCreators
    2260     {
    2261       get {
    2262         if (serializing && !_ExperimentCreators.HasLoadedOrAssignedValues) {
    2263           return null;
    2264         }
    2265         return _ExperimentCreators;
    2266       }
    2267       set {
    2268         _ExperimentCreators.Assign(value);
    2269       }
    2270     }
    2271 
    2272     private void attach_ExperimentCreators(ExperimentCreator entity)
    2273     {
    2274       SendPropertyChanging();
    2275       entity.Experiment = this;
    2276     }
    2277    
    2278     private void detach_ExperimentCreators(ExperimentCreator entity)
    2279     {
    2280       SendPropertyChanging();
    2281       entity.Experiment = null;
    2282     }
    22832219    private EntitySet<FloatParameterValue> _FloatParameterValues;
    22842220    [Association(Name=@"Experiment_FloatParameterValue", Storage=@"_FloatParameterValues", ThisKey=@"Id", OtherKey=@"ExperimentId")]
    2285     [DataMember(Order=7, EmitDefaultValue=false)]
     2221    [DataMember(Order=6, EmitDefaultValue=false)]
    22862222    public EntitySet<FloatParameterValue> FloatParameterValues
    22872223    {
     
    23102246    private EntitySet<IntParameterValue> _IntParameterValues;
    23112247    [Association(Name=@"Experiment_IntParameterValue", Storage=@"_IntParameterValues", ThisKey=@"Id", OtherKey=@"ExperimentId")]
    2312     [DataMember(Order=8, EmitDefaultValue=false)]
     2248    [DataMember(Order=7, EmitDefaultValue=false)]
    23132249    public EntitySet<IntParameterValue> IntParameterValues
    23142250    {
     
    23372273    private EntitySet<Run> _Runs;
    23382274    [Association(Name=@"Experiment_Run", Storage=@"_Runs", ThisKey=@"Id", OtherKey=@"ExperimentId")]
    2339     [DataMember(Order=9, EmitDefaultValue=false)]
     2275    [DataMember(Order=8, EmitDefaultValue=false)]
    23402276    public EntitySet<Run> Runs
    23412277    {
     
    23642300    private EntitySet<OperatorParameterValue> _OperatorParameterValues;
    23652301    [Association(Name=@"Experiment_OperatorParameterValue", Storage=@"_OperatorParameterValues", ThisKey=@"Id", OtherKey=@"ExperimentId")]
    2366     [DataMember(Order=10, EmitDefaultValue=false)]
     2302    [DataMember(Order=9, EmitDefaultValue=false)]
    23672303    public EntitySet<OperatorParameterValue> OperatorParameterValues
    23682304    {
     
    23912327    private EntityRef<Problem> _Problem;
    23922328    [Association(Name=@"Problem_Experiment", Storage=@"_Problem", ThisKey=@"ProblemId", OtherKey=@"Id", IsForeignKey=true, DeleteOnNull=true, DeleteRule=@"CASCADE")]
    2393     [DataMember(Order=11, EmitDefaultValue=false)]
     2329    [DataMember(Order=10, EmitDefaultValue=false)]
    23942330    public Problem Problem
    23952331    {
     
    24232359    private EntityRef<Project> _Project;
    24242360    [Association(Name=@"Project_Experiment", Storage=@"_Project", ThisKey=@"ProjectId", OtherKey=@"Id", IsForeignKey=true, DeleteOnNull=true, DeleteRule=@"CASCADE")]
    2425     [DataMember(Order=12, EmitDefaultValue=false)]
     2361    [DataMember(Order=11, EmitDefaultValue=false)]
    24262362    public Project Project
    24272363    {
     
    24552391    private EntityRef<Algorithm> _Algorithm;
    24562392    [Association(Name=@"Algorithm_Experiment", Storage=@"_Algorithm", ThisKey=@"AlgorithmId", OtherKey=@"Id", IsForeignKey=true, DeleteOnNull=true, DeleteRule=@"CASCADE")]
    2457     [DataMember(Order=13, EmitDefaultValue=false)]
     2393    [DataMember(Order=12, EmitDefaultValue=false)]
    24582394    public Algorithm Algorithm
    24592395    {
     
    25042440    }
    25052441   
    2506     [OnDeserializing()]
    2507     [EditorBrowsableAttribute(EditorBrowsableState.Never)]
    2508     public  void OnDeserializing(StreamingContext context)
    2509     {
    2510       Initialize();
    2511     }
    2512     #endregion
    2513   }
    2514 }
    2515 
    2516 namespace HeuristicLab.Services.OKB.DataAccess
    2517 {
    2518   [DataContract(IsReference=true)]
    2519   [Table(Name=@"dbo.ExperimentCreator")]
    2520 [KnownType(typeof(ExperimentCreator))]  public partial class ExperimentCreator : INotifyPropertyChanging, INotifyPropertyChanged
    2521   {
    2522     #region Property Change Event Handling
    2523     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    2524    
    2525     public event PropertyChangingEventHandler PropertyChanging;
    2526     public event PropertyChangedEventHandler PropertyChanged;
    2527    
    2528     public virtual void SendPropertyChanging()
    2529     {
    2530       if (PropertyChanging != null) {
    2531         PropertyChanging(this, emptyChangingEventArgs);
    2532       }
    2533     }
    2534      
    2535     public virtual void SendPropertyChanged(String propertyName)
    2536     {
    2537       if (PropertyChanged != null) {
    2538         PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    2539       }
    2540     }
    2541     #endregion
    2542    
    2543     #region Extensibility Method Definitions
    2544     partial void OnLoaded();
    2545     partial void OnValidate(ChangeAction action);
    2546     partial void OnCreated();
    2547     #endregion
    2548 
    2549     #region Construction
    2550     public ExperimentCreator()
    2551     {
    2552       Initialize();
    2553     }
    2554    
    2555     private void Initialize()
    2556     {
    2557       _Experiment = default(EntityRef<Experiment>);
    2558       _User = default(EntityRef<User>);
    2559       OnCreated();
    2560     }
    2561     #endregion
    2562 
    2563     #region Column Mappings
    2564     partial void OnExperimentIdChanging(int value);
    2565     partial void OnExperimentIdChanged();
    2566     private int _ExperimentId;
    2567     [Column(Storage=@"_ExperimentId", DbType=@"Int NOT NULL", IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)]
    2568     [DataMember(Order=1)]
    2569     public int ExperimentId
    2570     {
    2571       get { return _ExperimentId; }
    2572       set {
    2573         if (_ExperimentId != value) {
    2574           if (_Experiment.HasLoadedOrAssignedValue) {
    2575             throw new ForeignKeyReferenceAlreadyHasValueException();
    2576           }
    2577           OnExperimentIdChanging(value);
    2578           SendPropertyChanging();
    2579           _ExperimentId = value;
    2580           SendPropertyChanged("ExperimentId");
    2581           OnExperimentIdChanged();
    2582         }
    2583       }
    2584     }
    2585    
    2586     partial void OnUserIdChanging(Guid value);
    2587     partial void OnUserIdChanged();
    2588     private Guid _UserId;
    2589     [Column(Storage=@"_UserId", DbType=@"UniqueIdentifier NOT NULL", IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)]
    2590     [DataMember(Order=2)]
    2591     public Guid UserId
    2592     {
    2593       get { return _UserId; }
    2594       set {
    2595         if (_UserId != value) {
    2596           if (_User.HasLoadedOrAssignedValue) {
    2597             throw new ForeignKeyReferenceAlreadyHasValueException();
    2598           }
    2599           OnUserIdChanging(value);
    2600           SendPropertyChanging();
    2601           _UserId = value;
    2602           SendPropertyChanged("UserId");
    2603           OnUserIdChanged();
    2604         }
    2605       }
    2606     }
    2607    
    2608     #endregion
    2609    
    2610     #region Associations
    2611     private EntityRef<Experiment> _Experiment;
    2612     [Association(Name=@"Experiment_ExperimentCreator", Storage=@"_Experiment", ThisKey=@"ExperimentId", OtherKey=@"Id", IsForeignKey=true, DeleteOnNull=true, DeleteRule=@"CASCADE")]
    2613     [DataMember(Order=3, EmitDefaultValue=false)]
    2614     public Experiment Experiment
    2615     {
    2616       get {
    2617         return _Experiment.Entity;
    2618       }
    2619       set {
    2620         Experiment previousValue = _Experiment.Entity;
    2621         if ((previousValue != value) || (!_Experiment.HasLoadedOrAssignedValue)) {
    2622           SendPropertyChanging();
    2623           if (previousValue != null) {
    2624             _Experiment.Entity = null;
    2625             previousValue.ExperimentCreators.Remove(this);
    2626           }
    2627           _Experiment.Entity = value;
    2628           if (value != null) {
    2629             value.ExperimentCreators.Add(this);
    2630             _ExperimentId = value.Id;
    2631           }
    2632           else {
    2633             _ExperimentId = default(int);
    2634           }
    2635           SendPropertyChanged("Experiment");
    2636         }
    2637       }
    2638     }
    2639 
    2640     private EntityRef<User> _User;
    2641     [Association(Name=@"User_ExperimentCreator", Storage=@"_User", ThisKey=@"UserId", OtherKey=@"Id", IsForeignKey=true)]
    2642     [DataMember(Order=4, EmitDefaultValue=false)]
    2643     public User User
    2644     {
    2645       get {
    2646         return _User.Entity;
    2647       }
    2648       set {
    2649         User previousValue = _User.Entity;
    2650         if ((previousValue != value) || (!_User.HasLoadedOrAssignedValue)) {
    2651           SendPropertyChanging();
    2652           if (previousValue != null) {
    2653             _User.Entity = null;
    2654             previousValue.ExperimentCreators.Remove(this);
    2655           }
    2656           _User.Entity = value;
    2657           if (value != null) {
    2658             value.ExperimentCreators.Add(this);
    2659             _UserId = value.Id;
    2660           }
    2661           else {
    2662             _UserId = default(Guid);
    2663           }
    2664           SendPropertyChanged("User");
    2665         }
    2666       }
    2667     }
    2668 
    2669     #endregion
    2670    
    2671     #region Serialization
    26722442    [OnDeserializing()]
    26732443    [EditorBrowsableAttribute(EditorBrowsableState.Never)]
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/Properties/Settings.Designer.cs

    r4276 r4298  
    1414    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    1515    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
    16     internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
     16    public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
    1717       
    1818        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
     
    2727        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    2828        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
    29         [global::System.Configuration.DefaultSettingValueAttribute("Data Source=localhost;Initial Catalog=OKB;Integrated Security=True")]
     29        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI")]
    3030        public string OKBConnectionString {
    3131            get {
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/Properties/Settings.settings

    r4276 r4298  
    11<?xml version='1.0' encoding='utf-8'?>
    2 <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.OKB.DataStore.Properties" GeneratedClassName="Settings">
     2<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HeuristicLab.Services.OKB.DataAccess.Properties" GeneratedClassName="Settings">
    33  <Profiles />
    44  <Settings>
     
    66      <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
    77&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
    8   &lt;ConnectionString&gt;Data Source=localhost;Initial Catalog=OKB;Integrated Security=True&lt;/ConnectionString&gt;
     8  &lt;ConnectionString&gt;Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI&lt;/ConnectionString&gt;
    99  &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
    1010&lt;/SerializableConnectionString&gt;</DesignTimeValue>
    11       <Value Profile="(Default)">Data Source=localhost;Initial Catalog=OKB;Integrated Security=True</Value>
     11      <Value Profile="(Default)">Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI</Value>
    1212    </Setting>
    1313  </Settings>
  • trunk/sources/HeuristicLab.Services.OKB.DataAccess/3.3/app.config

    r4276 r4298  
    44  </configSections>
    55  <connectionStrings>
    6     <add name="HeuristicLab.OKB.DataStore.Properties.Settings.OKBConnectionString" connectionString="Data Source=localhost;Initial Catalog=OKB;Integrated Security=True" providerName="System.Data.SqlClient"/>
     6    <add name="HeuristicLab.Services.OKB.DataAccess.Properties.Settings.OKBConnectionString"
     7         connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI"
     8         providerName="System.Data.SqlClient" />
    79  </connectionStrings>
    810<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
  • trunk/sources/HeuristicLab.Services.OKB.Server/3.3/app.config

    r4280 r4298  
    11<?xml version="1.0"?>
    22<configuration>
     3  <connectionStrings>
     4    <add name="HeuristicLab.Authentication"
     5         connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
     6    <add name="HeuristicLab.Services.OKB.DataAccess.Properties.Settings.OKBConnectionString"
     7         connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI"
     8         providerName="System.Data.SqlClient" />
     9  </connectionStrings>
     10
     11  <system.web>
     12    <authentication mode="Forms" />
     13    <compilation debug="true" targetFramework="4.0" />
     14
     15    <membership>
     16      <providers>
     17        <clear/>
     18        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
     19             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
     20             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
     21             applicationName="HeuristicLab.Authentication" />
     22      </providers>
     23    </membership>
     24
     25    <roleManager enabled="true">
     26      <providers>
     27        <clear/>
     28        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
     29      </providers>
     30    </roleManager>
     31  </system.web>
     32
    333  <system.serviceModel>
    434    <bindings>
    535      <netTcpBinding>
    636        <binding name="LargeMessages" openTimeout="00:00:30" receiveTimeout="00:00:30" sendTimeout="00:00:30" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
    7           <security mode="Transport">
    8             <transport clientCredentialType="Certificate" protectionLevel="EncryptAndSign"/>           
     37          <security mode="Message">
     38            <message clientCredentialType="UserName"/>
    939          </security>
    1040          <readerQuotas maxArrayLength="2147483647"/>
     
    1343      </netTcpBinding>
    1444    </bindings>
     45
    1546    <client/>
     47
    1648    <behaviors>
    1749      <serviceBehaviors>
     
    1951          <serviceMetadata httpGetEnabled="false"/>
    2052          <serviceDebug includeExceptionDetailInFaults="true"/>
     53          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     54                                roleProviderName="AspNetSqlRoleProvider" />
     55          <serviceCredentials>
     56            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     57            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     58                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     59          </serviceCredentials>
    2160        </behavior>
    2261      </serviceBehaviors>
    2362    </behaviors>
     63
    2464    <services>
    25       <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.OKB.RunnerService">
     65      <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.Services.OKB.RunnerService">
    2666        <endpoint address="net.tcp://localhost:8001/OKB/Runner.svc/mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
    27         <endpoint address="net.tcp://localhost:8001/OKB/Runner.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IRunnerService">
    28           <identity>
    29             <dns value="HEAL"/>
    30           </identity>
    31         </endpoint>
     67        <endpoint address="net.tcp://localhost:8001/OKB/Runner.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IRunnerService"/>
    3268      </service>
    33       <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.OKB.AdminService">
     69      <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.Services.OKB.AdminService">
    3470        <endpoint address="net.tcp://localhost:8001/OKB/Admin.svc/mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
    35         <endpoint address="net.tcp://localhost:8001/OKB/Admin.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IAdminService"/>
     71        <endpoint address="net.tcp://localhost:8001/OKB/Admin.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IAdminService"/>
    3672      </service>
    37       <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.OKB.TableService">
     73      <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.Services.OKB.TableService">
    3874        <endpoint address="net.tcp://localhost:8001/OKB/Table.svc/mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
    39         <endpoint address="net.tcp://localhost:8001/OKB/Table.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.ITableService">
    40           <identity>
    41             <dns value="HEAL"/>
    42           </identity>
    43         </endpoint>
     75        <endpoint address="net.tcp://localhost:8001/OKB/Table.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.ITableService"/>
    4476      </service>
    45       <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.OKB.QueryService">
     77      <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.Services.OKB.QueryService">
    4678        <endpoint address="net.tcp://localhost:8001/OKB/Query.svc/mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
    47         <endpoint address="net.tcp://localhost:8001/OKB/Query.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IQueryService">
    48           <identity>
    49             <dns value="HEAL"/>
    50           </identity>
    51         </endpoint>
     79        <endpoint address="net.tcp://localhost:8001/OKB/Query.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IQueryService"/>
    5280      </service>
    53       <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.OKB.DataService">
     81      <service behaviorConfiguration="OKBServiceBehaviour" name="HeuristicLab.Services.OKB.DataService">
    5482        <endpoint address="net.tcp://localhost:8001/OKB/Data.svc/mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
    55         <endpoint address="net.tcp://localhost:8001/OKB/Data.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IDataService">
    56           <identity>
    57             <dns value="HEAL"/>
    58           </identity>
    59         </endpoint>
     83        <endpoint address="net.tcp://localhost:8001/OKB/Data.svc" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IDataService"/>
    6084      </service>
    6185    </services>
  • trunk/sources/HeuristicLab.Services.OKB/3.3/DataService.cs

    r4279 r4298  
    7272    private byte[] GetData(EntityType type, int id) {
    7373      Log("loading data", type, id);
    74       OKBDataContext okb = new OKBDataContext();
    75       switch (type) {
    76         case EntityType.Algorithm:
    77           Algorithm algorithm = okb.Algorithms.Single(a => a.Id == id);
    78           if (algorithm.AlgorithmData == null) {
    79             algorithm.AlgorithmData = new AlgorithmData() {
    80               AlgorithmId = algorithm.Id,
    81               Data = new Binary(new byte[0])
    82             };
    83             okb.SubmitChanges();
    84           }
    85           return algorithm.AlgorithmData.Data.ToArray();
    86           break;
    87         case EntityType.Problem:
    88           Problem problem = okb.Problems.Single(p => p.Id == id);
    89           if (problem.ProblemData == null) {
    90             problem.ProblemData = new ProblemData() {
    91               ProblemId = problem.Id,
    92               Data = new Binary(new byte[0])
    93             };
    94             okb.SubmitChanges();
    95           }
    96           return problem.ProblemData.Data.ToArray();
    97           break;
    98         default:
    99           throw new FaultException("Unsupported EntityType");
     74      using (OKBDataContext okb = new OKBDataContext()) {
     75        switch (type) {
     76          case EntityType.Algorithm:
     77            Algorithm algorithm = okb.Algorithms.Single(a => a.Id == id);
     78            if (algorithm.AlgorithmData == null) {
     79              algorithm.AlgorithmData = new AlgorithmData() {
     80                AlgorithmId = algorithm.Id,
     81                Data = new Binary(new byte[0])
     82              };
     83              okb.SubmitChanges();
     84            }
     85            return algorithm.AlgorithmData.Data.ToArray();
     86            break;
     87          case EntityType.Problem:
     88            Problem problem = okb.Problems.Single(p => p.Id == id);
     89            if (problem.ProblemData == null) {
     90              problem.ProblemData = new ProblemData() {
     91                ProblemId = problem.Id,
     92                Data = new Binary(new byte[0])
     93              };
     94              okb.SubmitChanges();
     95            }
     96            return problem.ProblemData.Data.ToArray();
     97            break;
     98          default:
     99            throw new FaultException("Unsupported EntityType");
     100        }
    100101      }
    101       okb.Dispose();
    102102    }
    103103
  • trunk/sources/HeuristicLab.Services.OKB/3.3/ExperimentKit.cs

    r4297 r4298  
    2121
    2222using System.Runtime.Serialization;
     23using HeuristicLab.Services.OKB.DataAccess;
    2324
    24 namespace HeuristicLab.Services.OKB.DataAccess {
    25 
     25namespace HeuristicLab.Services.OKB {
     26  /// <summary>
     27  /// Contains an <see cref="Algorithm"/> and a <see cref="Problem"/> populated with all
     28  /// required data to execute experiments.
     29  /// </summary>
    2630  [DataContract]
    2731  public class ExperimentKit {
     32    /// <summary>
     33    /// Gets an <see cref="Algorithm"/> populated with all required data to execute
     34    /// experiments.
     35    /// </summary>
     36    /// <value>An <see cref="Algorithm"/>.</value>
    2837    [DataMember]
    2938    public Algorithm Algorithm { get; set; }
    3039
     40    /// <summary>
     41    /// Gets a <see cref="Problem"/> populated with all required data to execute
     42    /// experiments.
     43    /// </summary>
     44    /// <value>A <see cref="Problem"/>.</value>
    3145    [DataMember]
    3246    public Problem Problem { get; set; }
  • trunk/sources/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj

    r4283 r4298  
    120120      <RequiredTargetFramework>3.0</RequiredTargetFramework>
    121121    </Reference>
    122     <Reference Include="System.ServiceModel.Activation" />
    123122    <Reference Include="System.ServiceProcess" />
    124123    <Reference Include="System.Xml.Linq">
     
    134133    <Compile Include="AdminService.cs" />
    135134    <Compile Include="AttributeSelector.cs" />
    136     <Compile Include="CertificateServiceHostFactory.cs" />
    137     <Compile Include="CustomCertificateValidator.cs" />
    138     <Compile Include="CertificateServiceHost.cs" />
    139135    <Compile Include="DataService.cs" />
     136    <Compile Include="ExperimentKit.cs" />
    140137    <Compile Include="Interfaces\IDataService.cs" />
    141138    <Compile Include="Interfaces\ITableService.cs" />
     
    157154  <ItemGroup>
    158155    <None Include="app.config" />
    159     <EmbeddedResource Include="client.cer" />
    160     <EmbeddedResource Include="server.pfx" />
    161156    <None Include="HeuristicLab.snk" />
    162157  </ItemGroup>
  • trunk/sources/HeuristicLab.Services.OKB/3.3/Hoster.cs

    r4279 r4298  
    5353    }
    5454
    55     static ILog logger = log4net.LogManager.GetLogger("HeuristicLab.OKB.Hoster");
     55    static ILog logger = log4net.LogManager.GetLogger("HeuristicLab.Services.OKB.Hoster");
    5656
    5757    static void UnhandledException(object sender, UnhandledExceptionEventArgs e) {
     
    6464
    6565    private static void StartService(Type type) {
    66       ServiceHost host = new CertificateServiceHost(type);
     66      ServiceHost host = new ServiceHost(type);
    6767      try {
    6868        host.Open();
  • trunk/sources/HeuristicLab.Services.OKB/3.3/RunnerService.cs

    r4279 r4298  
    142142    public void AddRun(Algorithm algorithm, Problem problem, Project project) {
    143143      Log("adding run for {0}@{1}({2})[{3}, {4}]",
    144         algorithm.Name, problem.Name, project.Name, authentication.User.Name, authentication.Client.Name);
     144        algorithm.Name, problem.Name, project.Name, currentUser.Name, currentClient.Name);
    145145      try {
    146146        using (OKBDataContext okb = new OKBDataContext()) {
    147           var user = okb.Users.Single(u => u.Id == authentication.User.Id);
    148           var client = okb.Clients.Single(c => c.Id == authentication.Client.Id);
    149           Experiment experiment = GetOrCreateExperiment(algorithm, problem, project, authentication.User, okb);
     147          Experiment experiment = GetOrCreateExperiment(algorithm, problem, project, currentUser, okb);
    150148          Run run = new Run() {
    151149            Experiment = experiment,
    152             UserId = authentication.User.Id,
    153             ClientId = authentication.Client.Id,
     150            UserId = currentUser.Id,
     151            ClientId = currentClient.Id,
    154152            FinishedDate = DateTime.Now,
    155153            ResultValues = algorithm.ResultValues
     
    175173        Log("reusing existing experiment");
    176174        Experiment experiment = experimentQuery.First();
    177         if (experiment.ExperimentCreators.Where(ec => ec.UserId == user.Id).Count() == 0) {
    178           experiment.ExperimentCreators.Add(new ExperimentCreator() { UserId = user.Id });
    179         }
    180175        return experiment;
    181176      } else {
     
    187182          ParameterValues = algorithm.ParameterValues
    188183        };
    189         experiment.ExperimentCreators.Add(new ExperimentCreator() { UserId = user.Id });
    190184        okb.Experiments.InsertOnSubmit(experiment);
    191185        return experiment;
     
    292286    /// </summary>
    293287    /// <returns>
    294     ///   <c>true</c> if this instance is connected; otherwise, <c>false</c>.
     288    ///   <c>true</c> if this instance is connected; otherwise, <c>false</c>.
    295289    /// </returns>
    296290    public bool IsConnected() {
    297       return authentication != null;
    298     }
    299 
    300     Authentication authentication = null;
     291      return currentUser != null;
     292    }
     293
     294    User currentUser = null;
     295    Client currentClient = null;
    301296
    302297    /// <summary>
     
    309304    /// <param name="clientname">The clientname.</param>
    310305    /// <returns>
    311     ///   <c>true</c> if the login was successful; <c>false</c> otherwise.
     306    ///   <c>true</c> if the login was successful; <c>false</c> otherwise.
    312307    /// </returns>
    313308    public bool Login(string username, string clientname) {
     
    320315      }
    321316      using (OKBDataContext okb = new OKBDataContext()) {
    322         authentication = new Authentication() {
    323           User = okb.Users.SingleOrDefault(u => u.Name == username),
    324           Client = okb.Clients.SingleOrDefault(c => c.Name == clientname)
    325         };
    326         if (authentication.User == null) {
    327           User user = new User() { Name = username, Id = Guid.NewGuid() };
    328           okb.Users.InsertOnSubmit(user);
    329           authentication.User = user;
     317        currentUser = okb.Users.SingleOrDefault(u => u.Name == username);
     318        currentClient = okb.Clients.SingleOrDefault(c => c.Name == clientname);
     319        if (currentUser == null) {
     320          currentUser = new User() { Name = username, Id = Guid.NewGuid() };
     321          okb.Users.InsertOnSubmit(currentUser);
    330322          okb.SubmitChanges();
    331323        }
    332         if (authentication.Client == null) {
    333           Client client = new Client() { Name = clientname, Id = Guid.NewGuid() };
    334           okb.Clients.InsertOnSubmit(client);
    335           authentication.Client = client;
     324        if (currentClient == null) {
     325          currentClient = new Client() { Name = clientname, Id = Guid.NewGuid() };
     326          okb.Clients.InsertOnSubmit(currentClient);
    336327          okb.SubmitChanges();
    337328        }
    338         Log("  auth = {0}", authentication);
     329        Log("  user = {0}, client = {1}", currentUser, currentClient);
    339330        return true;
    340331      }
     
    346337    public void Logout() {
    347338      Log("Logging out");
    348       authentication = null;
     339      currentUser = null;
     340      currentClient = null;
    349341    }
    350342
  • trunk/sources/HeuristicLab.Services.OKB/3.3/TableService.cs

    r4279 r4298  
    6666    public void UpdateDataTable(DataTable updatedRows, string tableName) {
    6767      logger.Info("updating table: " + tableName);
    68       Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.OKB." + tableName, true);
     68      Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.Services.OKB.DataAccess." + tableName, true);
    6969      var properties = from p in tableType.GetProperties()
    7070                       where SupportedTypes.Contains(p.PropertyType)
     
    126126    public void DeleteTableRows(int[] ids, string tableName) {
    127127      logger.Info("delete rows from table: " + tableName);
    128       Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.OKB." + tableName, true);
     128      Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.Services.OKB.DataAccess" + tableName, true);
    129129      OKBDataContext okb = GetDataContext();
    130130      ITable table = okb.GetTable(tableType);
     
    148148    public DataTable PrepareDataTable(string tableName, out int count) {
    149149      logger.Info("preparing data table: " + tableName);
    150       Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.OKB." + tableName, true);
     150      Type tableType = Assembly.GetAssembly(typeof(Run)).GetType("HeuristicLab.Services.OKB.DataAccess" + tableName, true);
    151151      properties = from p in tableType.GetProperties()
    152152                   where SupportedTypes.Contains(p.PropertyType)
  • trunk/sources/HeuristicLab.Services.OKB/3.3/app.config

    r4279 r4298  
    11<?xml version="1.0"?>
    22<configuration>
     3  <connectionStrings>
     4    <add name="HeuristicLab.Authentication"
     5         connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
     6    <add name="HeuristicLab.Services.OKB.DataAccess.Properties.Settings.OKBConnectionString"
     7         connectionString="Data Source=localhost;Initial Catalog=HeuristicLab.OKB;Integrated Security=SSPI"
     8         providerName="System.Data.SqlClient" />
     9  </connectionStrings>
     10
     11  <system.web>
     12    <authentication mode="Forms" />
     13    <compilation debug="true" targetFramework="4.0" />
     14
     15    <membership>
     16      <providers>
     17        <clear/>
     18        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
     19             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
     20             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
     21             applicationName="HeuristicLab.Authentication" />
     22      </providers>
     23    </membership>
     24
     25    <roleManager enabled="true">
     26      <providers>
     27        <clear/>
     28        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
     29      </providers>
     30    </roleManager>
     31  </system.web>
     32
    333  <system.serviceModel>
    434    <bindings>
    535      <netTcpBinding>
    636        <binding name="LargeMessages" openTimeout="00:00:30" receiveTimeout="00:00:30" sendTimeout="00:00:30" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
    7           <security mode="Transport">
    8             <transport clientCredentialType="Certificate" protectionLevel="EncryptAndSign"/>           
     37          <security mode="Message">
     38            <message clientCredentialType="UserName"/>
    939          </security>
    1040          <readerQuotas maxArrayLength="2147483647"/>
     
    1343      </netTcpBinding>
    1444    </bindings>
     45
    1546    <client/>
     47
    1648    <behaviors>
    1749      <serviceBehaviors>
     
    1951          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/OKB/RunnerMex"/>
    2052          <serviceDebug includeExceptionDetailInFaults="true"/>
     53          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     54                                roleProviderName="AspNetSqlRoleProvider" />
     55          <serviceCredentials>
     56            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     57            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     58                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     59          </serviceCredentials>
    2160        </behavior>
    2261        <behavior name="AdminServiceBehaviour">
    2362          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/OKB/AdminMex"/>
    2463          <serviceDebug includeExceptionDetailInFaults="true"/>
     64          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     65                                roleProviderName="AspNetSqlRoleProvider" />
     66          <serviceCredentials>
     67            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     68            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     69                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     70          </serviceCredentials>
    2571        </behavior>
    2672        <behavior name="TableServiceBehaviour">
    2773          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/OKB/TableMex"/>
    2874          <serviceDebug includeExceptionDetailInFaults="true"/>
     75          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     76                                roleProviderName="AspNetSqlRoleProvider" />
     77          <serviceCredentials>
     78            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     79            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     80                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     81          </serviceCredentials>
    2982        </behavior>
    3083        <behavior name="QueryServiceBehaviour">
    3184          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/OKB/QueryMex"/>
    3285          <serviceDebug includeExceptionDetailInFaults="true"/>
     86          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     87                                roleProviderName="AspNetSqlRoleProvider" />
     88          <serviceCredentials>
     89            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     90            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     91                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     92          </serviceCredentials>
    3393        </behavior>
    3494        <behavior name="DataServiceBehaviour">
    3595          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/OKB/DataMex"/>
    3696          <serviceDebug includeExceptionDetailInFaults="true"/>
     97          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
     98                                roleProviderName="AspNetSqlRoleProvider" />
     99          <serviceCredentials>
     100            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
     101            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
     102                                    membershipProviderName="AspNetSqlMembershipProvider"/>
     103          </serviceCredentials>
    37104        </behavior>
    38105      </serviceBehaviors>
    39106    </behaviors>
     107
    40108    <services>
    41       <service behaviorConfiguration="RunnerServiceBehaviour" name="HeuristicLab.OKB.RunnerService">
     109      <service behaviorConfiguration="RunnerServiceBehaviour" name="HeuristicLab.Services.OKB.RunnerService">
    42110        <endpoint address="http://localhost:8000/OKB/RunnerMex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    43         <endpoint address="net.tcp://localhost:8001/OKB/RunnerService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IRunnerService">
    44           <identity>
    45             <dns value="HEAL"/>
    46           </identity>
     111        <endpoint address="net.tcp://localhost:8001/OKB/RunnerService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IRunnerService">
    47112        </endpoint>
    48113      </service>
    49       <service behaviorConfiguration="AdminServiceBehaviour" name="HeuristicLab.OKB.AdminService">
     114      <service behaviorConfiguration="AdminServiceBehaviour" name="HeuristicLab.Services.OKB.AdminService">
    50115        <endpoint address="http://localhost:8000/OKB/AdminMex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    51         <endpoint address="net.tcp://localhost:8001/OKB/AdminService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IAdminService"/>
     116        <endpoint address="net.tcp://localhost:8001/OKB/AdminService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IAdminService"/>
    52117      </service>
    53       <service behaviorConfiguration="TableServiceBehaviour" name="HeuristicLab.OKB.TableService">
     118      <service behaviorConfiguration="TableServiceBehaviour" name="HeuristicLab.Services.OKB.TableService">
    54119        <endpoint address="http://localhost:8000/OKB/TableMex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    55         <endpoint address="net.tcp://localhost:8001/OKB/TableService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.ITableService"/>
     120        <endpoint address="net.tcp://localhost:8001/OKB/TableService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.ITableService"/>
    56121      </service>
    57       <service behaviorConfiguration="QueryServiceBehaviour" name="HeuristicLab.OKB.QueryService">
     122      <service behaviorConfiguration="QueryServiceBehaviour" name="HeuristicLab.Services.OKB.QueryService">
    58123        <endpoint address="http://localhost:8000/OKB/QueryMex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    59         <endpoint address="net.tcp://localhost:8001/OKB/QueryService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IQueryService"/>
     124        <endpoint address="net.tcp://localhost:8001/OKB/QueryService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IQueryService"/>
    60125      </service>
    61       <service behaviorConfiguration="DataServiceBehaviour" name="HeuristicLab.OKB.DataService">
     126      <service behaviorConfiguration="DataServiceBehaviour" name="HeuristicLab.Services.OKB.DataService">
    62127        <endpoint address="http://localhost:8000/OKB/DataMex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    63         <endpoint address="net.tcp://localhost:8001/OKB/DataService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.OKB.IDataService"/>
     128        <endpoint address="net.tcp://localhost:8001/OKB/DataService" binding="netTcpBinding" bindingConfiguration="LargeMessages" contract="HeuristicLab.Services.OKB.IDataService"/>
    64129      </service>
    65130    </services>
Note: See TracChangeset for help on using the changeset viewer.